FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Exportar a Excel, sin abrir el archivo de resultados
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Exportar a Excel, sin abrir el archivo de resultados
Posted: Tue Sep 19, 2017 03:35 PM
(Lo hab铆a puesto en el foro en Ingl茅s).... :-)

Buenos d铆as Fivewineros, estoy exportando un DBF a Excel con el metodo antiguo para mi (Simplemente le cambio la extensi贸n al archivo de .DBF a .XLS y Excel lo abre sin problemas), pero tengo un comportamiento raro, agregu茅 varios campos (que hacen las veces de columnas en Excel), pero al exportar los datos de esas columnas aparecen vacias, las cabeceras si estan en mi archivo de resultados, pero los datos no (bastante raro, ya que antes de darle el comando "copy to" le puse un xbrowse para ver la informaci贸n y si aparecen los datos en las columnas que acabo de agregar.

Para tratar de darle la vuelta al asunto y de paso usar los metodos correctos hice un Xbrowse y us茅 la clausula ToExcel(), lo que necesito saber es como le hago para que no me abra el archivo de resultados, solo necesito que lo salve en una ubicaci贸n que ya tengo predeterminada.

Uso FW1604+Harbour+bcc7


Primero le pido al usuario un directorio donde salvar los resultados

Code (fw): Select all Collapse
cDirinfo=cGetdir("Selecciona el directorio para guardar la informaci贸n generada")





Despues genero un dialogo para mostrar los datos con un boton para exportarlo a excel (si hubiera una forma de ejecutar el "TOExcel()" SIN abrir un dialogo estar铆a mejor)

Code (fw): Select all Collapse
聽 聽 DEFINE DIALOG oDlg SIZE 800,600 PIXEL //FONT oFont

聽 聽 聽 聽@ 10, 10 XBROWSE oBrw ;
聽 聽 聽 聽 聽 聽 聽 聽 SIZE 120, 70 PIXEL ;
聽 聽 聽 聽 聽 聽 聽 聽 OF oDlg ;
聽 聽 聽 聽 聽 聽 聽 聽 AUTOCOLS ;
聽 聽 聽 聽 聽 聽 聽 聽 LINES
聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽@ 250, 25 BTNBMP oBtn1 OF oDlg ;
聽 聽 聽 聽 SIZE 80, 15 PIXEL 2007 ;
聽 聽 聽 聽 NOBORDER ;
聽 聽 聽 聽 PROMPT " &AExcel() " ;
FILENAME cDirinfo ;
聽 聽 ACTION ( oBrw:ToExcel())
聽 聽 oBtn1:cToolTip = { "Enviar a Excel","Exportar", 1, CLR_BLACK, 14089979 }
聽 聽 oBtn1:SetColor( 0, )

聽 聽oBrw:CreateFromCode()

聽 聽ACTIVATE DIALOG oDlg CENTERED
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Exportar a Excel, sin abrir el archivo de resultados
Posted: Tue Sep 19, 2017 03:59 PM
Saludos, puedes exportar directamente a excel solo con abrir tu DBF o TABLE, aca un ejemplo de como lo uso, gracias... :-)

Code (fw): Select all Collapse
   LOCAL oExcel, oHoja, nRow := 4, nCol := 1, nFor := 0

   IF oQry:RecCount() == 0
      MSGALERT( "No hay Registros en este Periodo de Fechas: " +;
         DToC( aVar[1] ) + " al " + DToC( aVar[2] ), oDatos:cTitMsg )

      RETURN
   ENDIF

   oExcel := TOleAuto():New( "Excel.Application" )
   oExcel:WorkBooks:Add()

   oHoja := oExcel:ActiveSheet() // SINO ESPECIFICAS QUE HOJA, TOMARA POR DEFECTO LA HOJA1

*   oHoja:Cells(1, 1):Value := "REPORTES DE INTERVENCI脫N POR SERVICIOS AL CLIENTE " +;
*      "SOPORTE FACTURA No. XXXX DE FECHA DD/MM/AAAA"
//
   oHoja:Cells(3, 1):Value := "LLAMADA"
   oHoja:Cells(3, 2):Value := "REPORTE"
   oHoja:Cells(3, 3):Value := "FECHA DE SERVICIO"
   oHoja:Cells(3, 4):Value := "CLIENTE"
   oHoja:Cells(3, 5):Value := "LOCALIDAD"
   oHoja:Cells(3, 6):Value := "TIPO ZONA"
   oHoja:Cells(3, 7):Value := "SERVICIO"
   oHoja:Cells(3, 8):Value := "ORSERVACION"
   oHoja:Cells(3, 9):Value := "TARIFA Bs."

   oQry:GOTOP()
   DO WHILE !oQry:EOF()
      oHoja:Cells(nRow, 1):Value := AllTrim( cValToChar( oQry:rep_num_llamada ) )
      oHoja:Cells(nRow, 2):Value := AllTrim( cValToChar( oQry:rep_num_reporte ) )
      oHoja:Cells(nRow, 3):Value := oQry:rep_fch_servicio
      oHoja:Cells(nRow, 4):Value := AllTrim( oQry:rep_nombre_cliente )
      oHoja:Cells(nRow, 5):Value := AllTrim( oQry:rep_localidad )
      oHoja:Cells(nRow, 6):Value := AllTrim( oQry:rep_tipo_zona )
      oHoja:Cells(nRow, 7):Value := AllTrim( oQry:rep_servicio )
      oHoja:Cells(nRow, 8):Value := "EJECUTADO"//oQry:rep_servicio
      oHoja:Cells(nRow, 9):Value := oQry:rep_tarifa
//
      oQry:SKIP()

      nRow++
   ENDDO

// DESPUES DE CARGADO LOS DATOS A EXCEL, ES QUE SE HACEN LOS AJUSTES
   FOR nFor := 1 TO 9
      oHoja:Cells(3, nFor):Font:Bold := .t. // COLOCA TEXTO DE UNA CELDA EN NEGRITA
      oHoja:Columns(nFor):AutoFit() // AJUSTA LA COLUMNA A LA  CELDA CON EL TEXTO MAS GRANDE
      oHoja:Cells(3, nFor):Interior:Color := RGB(192,192,192) // COLOR FONDO DE LA CELDA(gris claro)
//
      IF nFor > 3
         oHoja:Cells(nFor, 9):NumberFormat := "#.##0,00" // FORMATEAR CELDA NUMERICA
      ENDIF
   NEXT

   oHoja:Cells(nRow, 8):Value := "Total Bs."
   oHoja:Cells(nRow, 8):Font:Bold := .t. // COLOCO EN NEGRITA TEXTO Total Bs.
   oHoja:Cells(nRow, 9):Font:Bold := .t. // COLOCO EN NEGRITA TOTAL DE LA SUMATORIA
   oHoja:Cells(nRow, 9):FormulaLocal:="=SUMA(I4:I" + cValToChar(nRow-1) + ")" // APLICAR FORMULA A UNA CELDA

   oHoja:Range("A3:H" + AllTrim( Str( nRow-1 )) ):HorizontalAlignment := 7 // ALINEA(centra) QUE ESTE EN UN RANGO DE CELDAS HORIZONTALMENTE
// COLOCO TEXTO DE CELDA 1,1 ACA ABAJO PARA QUE NO SE AJUSTE COLUMNA AL TAMA脩O DE ESTE TEXTO
   oHoja:Cells(1, 1):Value := "REPORTES DE INTERVENCI脫N POR SERVICIOS AL CLIENTE " +;
      "SOPORTE FACTURA No. XXXX DE FECHA DD/MM/AAAA"

//
   oHoja:Cells(1, 1):Select() // POSICIONA EL CURSO EN LA CELDA ESPECIFICADA
   oExcel:Visible := .t. // MOSTRAR O NO HOJA DE EXCEL
Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Exportar a Excel, sin abrir el archivo de resultados
Posted: Tue Sep 19, 2017 04:29 PM
El cuarto par谩metro del method ToExcel es:

Code (fw): Select all Collapse
METHOD ToExcel( bProgress, nGroupBy, aCols, lShow, cPDF, bPrePDF ) CLASS TXBrowse

// Prueba a poner en el cuarto parametro .F.
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Exportar a Excel, sin abrir el archivo de resultados
Posted: Tue Sep 19, 2017 05:10 PM

Muchas gracias por su respuesta, voy a probar sus sugerencias.

Saludos.

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Exportar a Excel, sin abrir el archivo de resultados
Posted: Tue Sep 19, 2017 09:16 PM
This is working for me with Office 365.

Do not open the dbf file also.
Code (fw): Select all Collapse
function FW_CopyDBF2XL( cSourceDBF, cDestXLS )

聽 聽local oExcel, oBook, oSheet
聽 聽local aHead

聽 聽oExcel 聽 := ExcelObj()
聽 聽oBook 聽 聽:= oExcel:WorkBooks:Open( cSourceDBF )
聽 聽oBook:ActiveSheet:UsedRange:Columns:AutoFit()

聽 聽if cDestXLS == nil
聽 聽 聽 oExcel:Visible := .t.
聽 聽else
聽 聽 聽 cDestXLS 聽 聽:= TrueName( cDestXLS )
聽 聽 聽 oExcel:DisplayAlerts := .f.
聽 聽 聽 oBook:SaveAs( cDestXLS )
聽 聽 聽 oBook:Close()
聽 聽endif

return nil

Give sourcedbf with full path
Give the destination file name without extension.
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion