Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Como importar datos desde Excel? (https://www.clubdelphi.com/foros/showthread.php?t=55728)

axlrafael 24-04-2008 21:33:51

Como importar datos desde Excel?
 
Hola que tal amigos, miren tengo un problema, necesito que en mi aplicación se pueda cargar datos desde hojas de excel a campos de tipo "Edit", pero no se ni como empezar. Por favor con que componentes se puede hacer esto? ya he estado buscando en varios foros pero la mayoria son para guardar hojas de Excel.

Miren la cuestión es esta, tengo un control de articulos de inventario en excel donde van separadas por grupo y por mes de esta forma:

gpo || ENE || FEB || MAR || ABR || MAY ||.....|| DIC|| || TOT ||

1 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'
2 'EDITX' 'EDITX' 'EDITX' 'EDITX' ......... 'EDITX' 'EDITXX'
3 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'
4 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'
..
..
10 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'


En mi aplicación esta forma de igual manera, entonces quiero buscar un archivo, recoger la ruta en otro edit y con otro botón iniciar la transferencia de los datos colocados exactamente en los "edits" correspondientes.
Bueno esa es mi idea, si ustedes usan otra manera para hacer algo similar por favor ayudame compartiendola y diciendome que componentes usar.

De antemano gracias por su atención y les deseo suerte en sus proyectos ;).

BlueSteel 24-04-2008 22:17:44

utiliza un DataSet
 
Cita:

Empezado por axlrafael (Mensaje 282395)
Hola que tal amigos, miren tengo un problema, necesito que en mi aplicación se pueda cargar datos desde hojas de excel a campos de tipo "Edit", pero no se ni como empezar. Por favor con que componentes se puede hacer esto? ya he estado buscando en varios foros pero la mayoria son para guardar hojas de Excel.

Miren la cuestión es esta, tengo un control de articulos de inventario en excel donde van separadas por grupo y por mes de esta forma:

gpo || ENE || FEB || MAR || ABR || MAY ||.....|| DIC|| || TOT ||

1 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'
2 'EDITX' 'EDITX' 'EDITX' 'EDITX' ......... 'EDITX' 'EDITXX'
3 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'
4 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'
..
..
10 'EDIT1' 'EDIT2' 'EDIT3' 'EDIT4' .......... 'EDITX' 'EDITXX'


En mi aplicación esta forma de igual manera, entonces quiero buscar un archivo, recoger la ruta en otro edit y con otro botón iniciar la transferencia de los datos colocados exactamente en los "edits" correspondientes.
Bueno esa es mi idea, si ustedes usan otra manera para hacer algo similar por favor ayudame compartiendola y diciendome que componentes usar.

De antemano gracias por su atención y les deseo suerte en sus proyectos ;).

Hola axlrafael

Primero que nada Bienvenido al Club... te sugiero que te leas la guia de estilo

Para tu caso puedes utilizar lo sgte.. Utilizar un componente de tipo DataSet (en la Jedi encuentras el JvDataSet).. vincularlo al archivo de Excel.. y mostrar los datos en un DBGrid que este vinculado al DataSet... yo utilizo ese metodo para capturar los datos desde un archivo de texto con columnas fijas... y me va de maravillas

Mira, este codigo es para activar el DataSet (DTexto)...
Código Delphi [-]
     DTexto.Active   := False;
     DTexto.FileName := Concat(Label1.Caption,'\',Archivo.Text); //Obtengo la ruta de un DirectoryListBox y FileListBox..
     DTexto.Active   := True;

Edito; me falto mencionar que al DataSet le puedes crear la cantidad de columnas que necesites y asigna los campos... con el tamaño (ancho o largo) que quieras

Si necesitas más ayuda.. pregunta

Salu2:p:D

Caro 25-04-2008 14:52:09

Hola axlrafael, también lo puedes hacer de esta forma.

Código Delphi [-]
const
  xlCellTypeLastCell = $0000000B;
var
 Excel, Sheet: OLEVariant;
 CantRow, CantCol, i, j : Integer;
 RangoMatriz: Variant;
begin
  FileName := 'C:\Archivo.xls';
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open(FileName);
 
  Sheet := Excel.Workbooks[ExtractFileName(FileName)].WorkSheets[1];
  Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
 
  CantRow := Excel.ActiveCell.Row;
  CantCol := Excel.ActiveCell.Column;
 
  RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;
 
  for i:=1 to CantRow do
   begin
    for j:=1 to CantCol do
     begin
      Showmessage(RangoMatriz[i,j]);
      //haces todo lo que necesites hacer
     end;
   end;//for

Saluditos

axlrafael 26-04-2008 23:41:44

Muchas gracias amigo, tratare de hacerlo ahorita como ustedes me dijeron, solo otra cosita por favor, cuales componentes debo utilizar para hacer esto??

gracias

BlueSteel 27-04-2008 03:05:40

Cita:

Empezado por axlrafael (Mensaje 282823)
Muchas gracias amigo, tratare de hacerlo ahorita como ustedes me dijeron, solo otra cosita por favor, cuales componentes debo utilizar para hacer esto??

gracias


Hola, creo que en el ejemplo de caro, no tienes que usar ningun componente en especial...

en el mode de importar los datos desde excel que te dí yo, te describo que componentes se utilizan...

Cita:

Para tu caso puedes utilizar lo sgte.. Utilizar un componente de tipo DataSet (en la Jedi encuentras el JvDataSet).. vincularlo al archivo de Excel.. y mostrar los datos en un DBGrid que este vinculado al DataSet... yo utilizo ese metodo para capturar los datos desde un archivo de texto con columnas fijas... y me va de maravillas
Salu2:p:D

axlrafael 28-04-2008 21:08:20

Hola disculpen, se me olvido mencionar que trabajo con Delphi 6. Para mi amigo BlueSteel, perdoname pero no encuentro el componente DataSet ni tampoco la Jedi ni el JvDataSet :confused:.

roman 28-04-2008 21:17:36

También puedes usar los componentes ADO. Aquí hay detalles de cómo usarlos para acceder a una hoja de Excel.

// Saludos

BlueSteel 28-04-2008 21:18:04

Cita:

Empezado por axlrafael (Mensaje 283059)
Hola disculpen, se me olvido mencionar que trabajo con Delphi 6. Para mi amigo BlueSteel, perdoname pero no encuentro el componente DataSet ni tampoco la Jedi ni el JvDataSet :confused:.

Hola...

Para encontrar esos componentes, debes intalar el Pack de Jedi..JCV y JCVL... no se si estan aquí... pero en más de un foro se ha tratado

Salu2:p:D

Revisa este link... donde puedes descargar dicho componente

axlrafael 06-05-2008 21:22:45

Muchisimas gracias Caro, me sirvio de mucho tu código, te debo una ;)

axlrafael 08-05-2008 19:21:49

Me resulto un problema ¡¡¡
 
Hola Caro, quiero preguntarte ¿porque es que despues de utilizar el archivo de excel en mi aplicación ya no me deja abrirlo de nueva cuenta?, he notado que cuando jalo cualquier archivo Excel en la aplicación no me deja abrirlo, me lo abre de tipo solo lectura y por logica no me deja guardarlo si lo quiero modificar:confused:.

Tambien note que en el administrador de tareas me abre tantas veces intente abrir yo el mismo archivo que utilice en la aplicación un proceso que es el de Excel ("EXCEL.EXE") :confused:

Espero que me puedas ayudar de nuevacuenta.

Saludos y suerte :D

Caro 09-05-2008 05:26:49

Hola axlrafael, lo que pasa es que en el codigo que te pase, no estamos cerrando la hoja de excel, aumenta lo siguiente:

Código Delphi [-]
  FileName := 'C:\Archivo.xls';
  try
   Excel := CreateOleObject('Excel.Application');
   Excel.Workbooks.Open(FileName);
   ...........
   ..........
   for i:=1 to CantRow do
    begin
     for j:=1 to CantCol do
      begin
       Showmessage(RangoMatriz[i,j]);
      end;
    end;//for
  finally
   Excel.Quit; //Aquí cerramos la hoja de Excel
  end;

Saluditos

axlrafael 09-05-2008 20:36:23

:DGracias Caro, ya quedo resuelto mi problema:D.

Suerte ;)

faustino36 21-05-2008 18:37:29

Que tal, he probado el codigo y funciona muy bien. Alguien sabe como listar las hojas que contiene el documento de excel; en el ejemplo se muestra utilizando la hoja, pero quisiera hacer dinamica esta parte y permitir que el usuario escoja la hoja que desee, alguien sabe como hacer esto?

roman 21-05-2008 18:56:13

Por ejemplo:

Código Delphi [-]
var
  Excel, Workbook, Worksheet: OleVariant;
  I: Integer;

begin
  Excel := ComObj.CreateOleObject('Excel.Application');

  Workbook := Excel.Workbooks.Open('C:\ruta\al\documento.xls');
  for I := 1 to Workbook.Worksheets.Count do
    Memo1.Lines.Add(Workbook.Worksheets[i].Name);

  Excel.Visible := true;
end;

Posteriormente puedes hacer referencia a una hoja ya sea con el índice numérico o con el nombre:

Código Delphi [-]
Workbook.Worksheets[2]
Workbook.Worksheets['Hoja2']

// Saludos

faustino36 21-05-2008 21:02:30

Muchas gracias, era exactamente lo que buscaba, ya lo pude implementar, gracias de nuevo

felipe88 26-05-2008 21:11:31

Hola compañeros del club... buscando otras alternativas para importar datos de excel (En mi caso para Firebird), encuentro generalmente este codigo que ustedes proponen, pero ultimamente tengo un problema con el mismo ya que de un momento a otro me salio el error "Out of memory" y no me completa la carga del archivo; por eso me gustaria saber si conocen de la posible causa de la aparicion de este error y una posible solucion... de antemano gracias

Saludos ;)...

roman 26-05-2008 21:48:11

¿Es muy grande tu archivo? De ser así, quizá te funcione mejor usar ADO, tal como mencioné en el mensaje 7.

// Saludos

axlrafael 26-05-2008 22:00:35

Hola amigos, disculpen otra pregunta, ¿como puedo elegir el rango de F13:Q39 con el código que nos proporciono Caro?.

Es decir, tengo un formato de excel ya estandarizado pero los datos que necesito estan en este rango:

F G H I J K L M N Ñ O P Q
13
14
15
..
...
...
39

En el código aparece esto:


Código:

RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;
Ahi pongo según yo el rango que necesito, pero a la hora de probar me marca error.

Saludos a todos.

felipe88 27-05-2008 14:33:40

Cita:

Empezado por roman (Mensaje 289207)
¿Es muy grande tu archivo? De ser así, quizá te funcione mejor usar ADO, tal como mencioné en el mensaje 7.

// Saludos

Vaya!!! no me habia dado cuenta de que el ave fenix habia revivido de sus cenizas :D... o hace mucho que no volvia ?... Bueno roman, la verdad el archivo maneja unos casi 40.000 registros, normalmente esta carga al StringGrid que uso me tomaba menos de un minuto... de aqui solo es cuestion de pasarlo a la BD (Uso DBExpress) y para serte sincero no quisiera recurrir a ADO como la primera solucion aunque sea la mas efectiva, pues nunca lo he usado y no quisiera gastar en aprenderlo en este momento... ademas, cuales serian las dll's o bpl's que necesitaria en instalador en caso de que me decida :D...

felipe88 27-05-2008 16:41:19

Bueno estuve probando ADO y logre esto:

Código Delphi [-]
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + QuotedStr(Edit1.Text) +';Extended Properties=Excel 8.0;Persist Security Info=False';
ADODataSet1.Open;


Aqui le paso al ADOConnection1 el archivo de excel que necesite por medio de un Edit... y luego solo lo abro, hasta funciona mas rapido :); la pregunta del millon sigue siendo, una vez tenga este problema solucionado que dll y bpl necesito para el instalador...

Por cierto gracias por el codigo...;)





PD: Aca usamos caritas para todo :confused::eek::mad::rolleyes::cool::p;):D

Caro 28-05-2008 15:15:28

Hola axlrafael, si necesitas desde el rango F13:Q39, en Range le dices que comience en F13 y cambias en tu ciclos for la cantidad de columnas y filas.

Código Delphi [-]
RangoMatriz := Excel.Range['F13', Excel.Cells.Item[CantRow,CantCol]].Value;
 
  for i:=1 to CantRow-12 do
   begin
    for j:=1 to CantCol-5 do
     begin
      Showmessage(RangoMatriz[i,j]);
      //haces todo lo que necesites hacer
     end;
   end;//for

Saluditos

Caro 28-05-2008 15:26:57

Cita:

Empezado por felipe88 (Mensaje 289371)
la pregunta del millon sigue siendo, una vez tenga este problema solucionado que dll y bpl necesito para el instalador...

Hola Felipe88, ADO utiliza MDAC, que viene instalado en el sistema operativo (Windows XP, Millenium, 2000....). Pero si tu aplicación estara instalada en Windows 95 o 98, si necesitas redistribuir e instalar MDAC.

Mas caritas ;):p:D

Saluditos

felipe88 28-05-2008 15:30:03

Cita:

Empezado por Caro (Mensaje 289560)
Hola Felipe88, ADO utiliza MDAC, que viene instalado en el sistema operativo (Windows XP, Millenium, 2000), pero si es Windows 95 y 98, si necesitas redistribuir e instalar MDAC.

Mas caritas ;):p:D

Saluditos

Gracias Caro, eso me tranquiliza mas...:):rolleyes::p;):D

Caro 28-05-2008 16:48:11

Tengo una pregunta
 
Hola a todos, estoy leyendo todas las hojas de mi documento de excel, pero si encuentra una hoja vacía me sale un Access Violation al intentar leer la primera celda, como puedo verificar si una hoja esta vacía y asi no leerla, muchísimas gracias por adelantado.

Axrafael, para que no sea muy estatico, puedes obtener también las filas y columnas de tu rango y quedaria asi.

Código Delphi [-]
var
 .....
 CantRowRango, CantColRango, i, j : Integer;
 RangoMatriz: Variant;
 Rango : OleVariant;
begin
  ......................

  CantRow := Excel.ActiveCell.Row;
  CantCol := Excel.ActiveCell.Column;

  Rango := Excel.Range['F13', 'Q39'];
 
  RangoMatriz := Rango.Value;
 
  CantRowRango := Rango.Rows.Row;
  CantColRango := Rango.Columns.Column;

  for i:=1 to (CantRow-CantRowRango)+1 do
   begin
    for j:=1 to (CantCol-CantColRango)+1 do
     begin
      //
     end;
   end;//for

Saluditos

roman 28-05-2008 17:31:23

Cita:

Empezado por Caro (Mensaje 289596)
Hola a todos, estoy leyendo todas las hojas de mi documento de excel, pero si encuentra una hoja vacía me sale un Access Violation al intentar leer la primera celda, como puedo verificar si una hoja esta vacía y asi no leerla, muchísimas gracias por adelantado.

Es raro. Con este código

Código Delphi [-]
var
  ExcelApp, Workbook: OleVariant;
  I: Integer;

begin
  ExcelApp := ComObj.CreateOleObject('Excel.Application');
  Workbook := ExcelApp.Workbooks.Open('C:\ruta\al\documento.xls');

  for I := 1 to WorkBook.Worksheets.Count do
    Memo1.Lines.Add(Workbook.Worksheets[i].Cells[1, 1]);

  ExcelApp.Visible := true;
end;

puedo acceder a la primera celda de cada hoja aun estando vacías.

// Saludos

Caro 28-05-2008 18:19:42

Hola amiguito Roman, ya me funciona utilizando Cells como me indicas, muchísimas gracias ;). Lo que pasaba es que yo accedía a la celda, como esta en mi codígo casi al principio de este hilo.

Saluditos

axlrafael 29-05-2008 00:09:14

De nueva cuenta muchisisimas gracias Caro, no sabes como me has ayudado en todo este tiempo, te lo agradesco de corazón, ya te debo miles :D.

Sobre tu otro código, voy a checarlo, porque con el anterior me sirve mucho, de todas maneras lo tomare en cuenta.

Saludos y suerte a todos con sus proyectos. ;)

Tachiquin 17-06-2008 15:48:15

auxiliooooo.... yo tambien ando perdida, tengo que hacer un trabajo parecido,
 
tengo que abrir archivos de word y de excel y mostrar la informacion en un programa en delphi, tambien guardar datos en archivos de word y excel, pueden decirme con que componentes, como se manejan parametros, estoy en delphi 7

ledesmarc 15-07-2008 16:50:05

Excel ADO
 
Cita:

Empezado por roman (Mensaje 283063)
También puedes usar los componentes ADO. Aquí hay detalles de cómo usarlos para acceder a una hoja de Excel.

// Saludos

Roman muy buena tu info, pero tengo un problema cuando quiero importar desde el excel (usando Ado) lo hace bien cuando se trata de una columna que sean todos del mismo tipo para mi caso(son todos numeros) el tema es que cuando en la columna hay mesclados numeros y letras en una misma celda, la importacion se corta (osea importa hasta esa celda)y la verdad me he cansado de buscar pero no encuentro el porque.
Te agredecere cualquier sugerencia
Saludos.
Marcos

maxid 21-08-2008 17:28:11

Usa adoconection
 
Usa un componente AdoConection y un ADODataSet, en la cadena de conexion pone todo esto y en source el archivo excel.

ADOConnection1.ConectionString:= Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=F:\Company\Solicitud\Solicitud.xls;Mode=Share Deny None;Extended Properties=Excel 8.0;Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False


Tambien podes poner como una constante y con format(cte_cadenadeconxion,[farchivoexcel])
y trabajas como una tabla y grillas normal, incluso podes acceder a los campos con fieldbyname si sabes como se llaman de antemano.
Enlaza en el AdoConection con ADODataSet y en ADODataSet1.CommandText tenes las pestañas del archivo

ledesmarc 22-08-2008 11:23:40

Muchas Gracias por la Data, ahora lo pruebo..

Saludos

Rancy 15-09-2008 11:00:18

Hola :)
Tengo un problema con el código que escribió Caro en la primera pagina (era el siguiente):

Código Delphi [-]
const
  xlCellTypeLastCell = $0000000B;
var
 Excel, Sheet: OLEVariant;
 CantRow, CantCol, i, j : Integer;
 RangoMatriz: Variant;
begin
  FileName := 'C:\Archivo.xls';
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open(FileName);
 
  Sheet := Excel.Workbooks[ExtractFileName(FileName)].WorkSheets[1];
  Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
 
  CantRow := Excel.ActiveCell.Row;
  CantCol := Excel.ActiveCell.Column;
 
  RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;
 
  for i:=1 to CantRow do
   begin
    for j:=1 to CantCol do
     begin
      Showmessage(RangoMatriz[i,j]);
      //haces todo lo que necesites hacer
     end;
   end;//for

Concretamente mi problema esta en esta línea:
Código Delphi [-]
Excel := CreateOleObject('Excel.Application');

El error es Undeclared identifier 'CreateOleObject'

Además, a intervalos regulares me aparece el mensage de error:
Unable to cast object of type 'Borland.Delphi.VariantType' to type 'Borland.Delphi.Unit'

Y no se como solucionar ninguna de las dos cosas. Tal vez sea algo muy básico, ya que a los demas que han probado el código les ha funcionado perfectamente. Alguna idea de por dónde puede ir el error?

Mi intención es leer el documento excel para luego ir guardando la información listada. Uso delphi 2007, por si es de utilidad saberlo.
Sinceramente estoy bastante perdido.

Gracias por adelantado. :)

Rancy 15-09-2008 11:31:03

Ok, ya suponía que estaba cometiendo un error muy básico :D

Me faltaba completar los "uses"! Vaya noob estoy hecho.

Aunque el error:
Unable to cast object of type 'Borland.Delphi.VariantType' to type 'Borland.Delphi.Unit'

Sigue apareciendo... Es bastante molesto, aunque el código se compila sin problemas.

Si alguien sabe como puedo solucionarlo, se lo agradecería.

jejo1984 09-01-2012 22:49:37

Importar archivo excel a un stringgrid LAZARUS IDE
 
Hola que tal amigos espero que me puedan ayudar con lo siguiente:
Bueno quiero abrir un archivo excel en un stringgrid con Lazarus IDE encontre algo similar en este foro pero me marca un error les enseño el codigo:

Código Delphi [-]
unit cf_acceso;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  Buttons,comobj,variants;
........
procedure TForm1.BitBtn1Click(Sender: TObject);
const
  xlCellTypeLastCell = $0000000B;
var
 Excel, Sheet,Book: OLEVariant;
 CantRow, CantCol, i, j : Integer;
 RangoMatriz: Variant;
 FileName:String;

begin
  FileName:='C:\SISTEMAPLANILLAS\Libro2.xlsx';
  try
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open(FileName);
  ShowMessage(FileName);
  Sheet := Excel.Workbooks[ExtractFileName(FileName)].WorkSheets[1];
  Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;

  CantRow := Excel.ActiveCell.Row;
  CantCol := Excel.ActiveCell.Column;

  RangoMatriz := Excel.Range['A1',Excel.Cells.Item[CantRow,CantCol]].Value;

  for i:=1 to CantRow do
   begin
    for j:=1 to CantCol do
     begin
      Showmessage(RangoMatriz[i,j]);
      //haces todo lo que necesites hacer
     end;
   end;//for
   finally
   Excel.Quit; //Aquí cerramos la hoja de Excel
   end;
end;

Bien es en estas líneas de codigo en las que me aparece el error:

Código Delphi [-]
Sheet := Excel.Workbooks[ExtractFileName(FileName)].WorkSheets[1];

Error: Incompatible types: got "AnsiString" expected "LongInt"

Código Delphi [-]
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
RangoMatriz := Excel.Range['A1',Excel.Cells.Item[CantRow,CantCol]].Value;

Error: Incompatible types: got "Constant String" expected "LongInt"



Bueno intente esto:

Código Delphi [-]
Sheet := Excel.Workbooks[StrToInt(ExtractFileName(FileName))].WorkSheets[1];
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; 
RangoMatriz:=Excel.Range[StrToInt('A1'),Excel.Cells.Item[CantRow,CantCol]].Value;

Ejecuta normal pero al dar click en el boton aparece el mensaje:
El proyecto a lanzado una excepcion 'EOLeExceptionEOLeException' con el mensaje:
no se encontro "??????x.xlsx" Comprube ortografia y verificar si la ubicación es correcta.

La ruta es totalmente correcta pero no se lo que pasa por favor si me pueden ayudar con esto.
Gracias

Casimiro Notevi 09-01-2012 23:10:31

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.


jejo1984 10-01-2012 12:51:04

Ok Casimiro ya esta dame una sugerencia pues en que estoy fallando estoy usando Lazarus IDE

Casimiro Notevi 10-01-2012 12:57:20

Mira si te sirve alguno de los enlaces de abajo de esta página, justo al final.

jejo1984 10-01-2012 13:06:29

Lo estoy trabajando en lazarus IDE - windows xp y solo aparece esos errores y la verdad no logro solucionarlo =(

Casimiro Notevi 10-01-2012 13:39:45

Cita:

no se encontro "??????x.xlsx" Comprube ortografia y verificar si la ubicación es correcta.
Puede que la ruta que le has indicado no sea tan correcta.

jejo1984 10-01-2012 13:51:31

La ruta es correcta la comprobe creo que el error marca por que le puse esto:
Código Delphi [-]
StrToInt(ExtractFileName(FileName))
Pero si quito StrToInt me marca lo siguiente:
Código Delphi [-]
Error: Incompatible types: got "AnsiString" expected "LongInt"


La franja horaria es GMT +2. Ahora son las 20:05:21.

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