Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Abrir archivo excel 2007 o 2010 (https://www.clubdelphi.com/foros/showthread.php?t=78585)

cmfab 02-05-2012 13:30:28

Abrir archivo excel 2007 o 2010
 
Hola a todos !!!

uso el siguiente trozo de código para abrir y leer las celdas de un archivo de excel

Código Delphi [-]
  if not OpenDialog1.Execute then exit;
  FileName := opendialog1.FileName;
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open(FileName);
  Sheet := Excel.Workbooks[ExtractFileName(FileName)].WorkSheets[1];
  Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;

pero solo me funciona con archivos de office 2003 (*.xls). que instrucción debería usar si el usuario selecciona un arhivo *.xlsx de office 2007 o 2010.

Gracias de antemano

ecfisa 02-05-2012 14:00:30

Hola cmfab.

No sé que versión de Delphi estas usando.... mirá en estos enlaces:
Saludos.

cmfab 02-05-2012 14:04:43

Gracias ecfisa voy a revisar los links

Jetzuvely21 14-05-2012 20:15:06

Hola cmfab, tengo el mismo problema para la lectura de los archivos para office 2007 y 2010. Estoy trabajando en delphi 5 y utilizo el mismo trozo de codigo que tu para abrir los archivos (objeto ole). ¿encontraste alguna solución?...Yo por el momento he buscado en el foro y he encontrado que se puede hacer con ADO,instalando componentes externos y con archivos csv (delimitado por comas).

De antemano muchas gracias, saludos!

cmfab 18-05-2012 13:32:03

Hola, Jetzuvely21

Lamento decirte que no me ha funcionado para office 2010, por lo que mi cliente optó por dejar los archivos en formato 2003. si hay alguna solucion sería bueno que alguien dejara el codigo detallado.

un saludo !!!!

Jetzuvely21 18-05-2012 16:41:23

Cita:

Empezado por cmfab (Mensaje 432878)
Hola, Jetzuvely21

Lamento decirte que no me ha funcionado para office 2010, por lo que mi cliente optó por dejar los archivos en formato 2003. si hay alguna solucion sería bueno que alguien dejara el codigo detallado.

un saludo !!!!

Gracias por contestarme cmfab, yo opté por los ADO y la importación ya la hice con excel y con .csv, aunque ahora lo que ando buscando el porqué me devuelve algunos valores en blanco cuando son de tipo caracter o cadena de texto.

Ojalá si haya una solución para OLE.... >_<'


Nuevamente gracias y saludos!

elaguna 10-08-2012 04:04:03

Ya tiene algún tiempo el tema pero si alguien llega con la misma duda le podría servir.

Cita:

Empezado por ecfisa (Mensaje 431532)
Hola cmfab.

No sé que versión de Delphi estas usando.... mirá en estos enlaces:Saludos.

El primer enlace es el que me pareció más claro y funciona muy bien, sólo un pequeño detalle falta:

Código Delphi [-]
begin
    newWorkbook := XLSXReader.Workbooks.Add('C:\book1.xlsx', GetUserDefaultLCID);
    objXLS := Excel_TLB.TExcelWorkbook.Create(nil);
    objXLS.ConnectTo(newWorkbook);
    objSheet := Excel_TLB.TExcelWorksheet.Create(nil);
    ...

falta inicializar la variable XLSXReader, y obviamente liberarla al final, entonces queda:
Código Delphi [-]
 begin
    XLSReader := Excel_TLB.TExcelApplication.Create(nil);

     newWorkbook := XLSXReader.Workbooks.Add('C:\book1.xlsx', GetUserDefaultLCID);
     objXLS := Excel_TLB.TExcelWorkbook.Create(nil);
     objXLS.ConnectTo(newWorkbook);
     objSheet := Excel_TLB.TExcelWorksheet.Create(nil);
    ...
    ...
    FreeAndNil(objXLS);
      FreeAndNil(objSheet);
    FreeAndNil(XLSXReader);

y es todo, y con eso funciona perfectamente.

Espero les sirva a todos, si hay alguna otra observación, háganla saber.

Saludos

Eduardo Laguna

pnsd_89 10-11-2014 22:06:55

Hola amigos una consulta en el ultimo código de la primer URL mensiona a un FSheet..
el cual me tira el siguiente error.
[DCC Error] Unit1.pas(102): E2003 Undeclared identifier: 'FSheet'

alguien sabe donde o como se declara el FSheet?
Gracias.

jpgonzalez 30-06-2015 17:17:31

Cita:

Empezado por pnsd_89 (Mensaje 484435)
Hola amigos una consulta en el ultimo código de la primer URL mensiona a un FSheet..
el cual me tira el siguiente error.
[DCC Error] Unit1.pas(102): E2003 Undeclared identifier: 'FSheet'

alguien sabe donde o como se declara el FSheet?
Gracias.

Buenas, lo que te está queriendo decir el error es que no conoce FSheet, como si fuera una variable que no ha sido declarada.
Mas abajo hay un usuario que menciona lo mismo, y le contestan lo siguiente:

"Hi Pablo,
FSheet is a stringGrid that I have with some values and LastModule can be discarded.
Regards,"

Saludos

sefonk 02-11-2016 16:52:40

Yo tengo un inconveniente con delphi xe 5 donde utilizo unas para excel, las cuales funcionan perfectamente con delphi 2007 pero con xe5 no, el error es que el archivo me aparece con vista protegida siempre y en 2007 no, alguien aun me puede ayudar?


La franja horaria es GMT +2. Ahora son las 06:07:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi