Delphi - Exportar datos de tabla paradox a Excel

 
Vista:

Exportar datos de tabla paradox a Excel

Publicado por Pollux (27 intervenciones) el 03/07/2008 16:36:50
Hola a todos los que rondan este sitio:
Necesito ver como puedo exportar los datos de una tabla paradox7 a Excel, estoy usando delphi 7 y esto me urge para mi programa.
Gracias adelantadas.
Suerte
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Exportar datos de tabla paradox a Excel

Publicado por E.T. (1244 intervenciones) el 03/07/2008 17:07:08
Si cuentas con quickReport 4 puedes hacerlo de una forma muy sencilla, solo creas un reporte con los datos que deseas, agregas un filtro (es como un componente, está en la paleta de quick report) ejecutas el reporte y le das guardar, se abre el dialogo de guardar, eliges el tipo exel, le das nombre y listo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de tabla paradox a Excel

Publicado por pacopaz (104 intervenciones) el 03/07/2008 18:42:04
Delphi tiene un componente de Excel para este tipo de cosas, basta con traer la unidad Excel2000 y ExcelXP (declararlas en el uses) para poder trabajar con ellos. El problema es que la información es escasa y no están bien definidos los metodos y son poco intuitivos.
Estas unidades generan la comunicación con el objeto Excel.Application. Si no quieres usarlas, puedes hacerlo a través de OleAutomation. Para esto, tienes que definir 3 variables tipo Variant, una para la aplicación de excel, otra para las hojas de calculo y otra para la hoja de cálculo que vas a usar. Así, lo que puedes hacer es lo siguiente, dado que tienes el dataset comuncándose con la tabla de Paradox:

procedure TForm1.Button1Click(Sender: TObject);
var
vExcel, vBook, vSheet: Variant;
nCol, nRow: Integer;
const
xlWBATWorksheet = -4167;
xlRangeAutoFormatSimple = -4154;
begin

vExcel := CreateOleObject('Excel.Application');
vBook := vExcel.WorkBooks.Add(xlWBATWorkSheet);
vSheet := vBook.WorkSheets[1];
vSheet.Name := 'Exporta';
for nCol := 1 to dtsParadox.DataSet.FieldCount do
vSheet.Range[Chr(64 + nCol) + '1'].Value = dtsParadox.DataSet.FieldList.Strings[nCol - 1];
dtsParadox.DataSet.First;
for nRow := 1 to dtsParadox.DataSet.RecordCount do
for nCol := 1 to dtsParadox.DataSet.FieldCount do
begin
vSheet.Range[Chr(64 + nCol) + IntToStr(nRow + 1)].Value := dtsParadox.DataSet.Fields.FieldByNumber(nCol - 1).Value;
dtsParadox.DataSet.Next;
end;
nRow := dtsParadox.DataSet.RecordCount
nCol := dtsParadox.DataSet.FieldCount
vExcel.Range['A1:' + Chr(64 + nCol) + IntToStr(nRow + 1)].AutoFormat(Format:=xlRangeAutoFormatSimple,
Number:=True, Font :=True, Alignment:=True, Border:=True, Pattern:=True, Width:=True);
vExcel.Visible := True;

end;

Donde dtsParadox es el dataset ligado a tu query o tabla en Paradox.
Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de tabla paradox a Excel

Publicado por Pollux (27 intervenciones) el 03/07/2008 19:11:41
Muchas gracias por responder ET y Pacopaz:
Con el metodo que me das Pacopaz quizas sea un poco más conveniente debido a que no necesito hacer un reporte para esto.
Cunado introdusco la Unit "OleAutomation" en la capsula Uses me dice que que esa unit no existe. Por lo tanto no la puede compilar.
Que puedo hacer? Donde puedo encontra esa Unit?
Gracias por todo y espero respuesta de ustedes.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de tabla paradox a Excel

Publicado por pacopaz (104 intervenciones) el 03/07/2008 19:37:49
OleAutomation es la forma en que se comunicará tu programa con los objetos de Excel (en este caso). Esta se utiliza no sólo para programar en Delphi, sino que es un protocolo de comunicación entre los objectos registrados en Windows, así que se puede utilizar desde cualquier lenguaje de programación. Hay documentación al respecto en el internet, aunque no he encontrado una página que describa, de principio a fin, su utilización e implementación. Habrás notado que defino unas constantes. Estas las tuve que buscar en internet hasta que las hallé. Hay mucha información pero sólo piezas de ella, así que, si quisieras indagar más al respecto del OleAutomation, habrás de juntar mucha paciencia, curiosidad y perseverancia hasta que logres lo que requieras.
La unidad que maneja esta comunicación se llama ComObj. Se me pasó ofrecerte esta información, pero con gusto te la ofrezco ahora.
Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar datos de tabla paradox a Excel

Publicado por @lex (47 intervenciones) el 09/07/2008 01:52:11
Hola, hay otra forma, bajate los JVCl de delphi buscalos en internet como projecto jedi, descomprime, instala(primero el JCL y luego el JVCL), ahi entre tantos componentes biene uno que hace todo este trabajo, se me escapa el nombre en este momento pero estoy seguro que lo encontraras, tiene el icno de un grid

SUERTE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar