Delphi - Leer Archivo excel

 
Vista:

Leer Archivo excel

Publicado por juancho (193 intervenciones) el 03/03/2008 11:31:15
De antemano muchas gracias, mi pregunta: si esposible leer un archivo excel desde delphi?, solo leerlo no modificarlo, necesito pasar unos datos de una planilla excel a una base de datos cualquiera, mo importa la base de datos que sea, encontre unos componentes pero todos son de pago y ya para hacer cosas muy potentes, como digo solo necesito leer el archivo. Les agreadecería muchisimo si pudieran ayudarme.
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

RE:Leer Archivo excel

Publicado por lcc (14 intervenciones) el 03/03/2008 16:28:53
en este link hay un codigo que te puede servir, lee una hoja excel para imprimierla atraves de delphi.
para recuperar los datos e insertarlos en una tabla de cuaquier base de datos tienes que leer el valor que tiene la celdas como esta en esta linea.

appExcel.WorkBooks[1].Worksheets[1].Cells[i, j] ; { Valor de la celda en Excel}

y pasarlo al campo de la tabla o el query, dependiendo del componente usas.
detodas maneras esta claro el ejemplo en el codigo.

http://www.latindevelopers.com/forum/viewtopic.134.html#p326

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:Leer Archivo excel

Publicado por juancho (193 intervenciones) el 05/03/2008 11:06:52
Exelente es exactamente lo que necesito, te agradesco mucho y en cualquier cosa que pueda ayudarte enviame unmail, muchas gracias!.
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:Leer Archivo excel

Publicado por Mary (1 intervención) el 22/10/2009 22:00:45
Buenas Tardes, tengo una duda :S estoy pasando unos datos de excel a un archivo txt, cuando todas las lineas estan llenas genera el archivo bien, pero cuando empieza con lineas vacias o tiene lineas vacias entre datos, no copia nada, en mi caso cuando empieza vacio no copia nada, y cuando tiene lineas de por medio solo escribe las 3 primeras columnas :( Ayuda Por favor.. Soy Nueva en esto.

procedure TPrincipalForm.BitBotonIniciarClick(Sender: TObject);

var
appExcel : Variant;
i, j, k : integer;
contenido,resultado : String;
x : string;
numCampos : integer;
numFilas : integer;
begin

if (FileListBox.ItemIndex >= 0) then
begin
appExcel := CreateOleObject('Excel.Application');
appExcel.WorkBooks.Open(FileListBox.FileName);

numFilas := appExcel.ActiveCell.Row;

numCampos := appExcel.ActiveCell.Column;

for i := 2 to (numFilas) do
begin
contenido := '';
for j := 1 to numCampos do
begin
x := appExcel.WorkBooks[1].Worksheets[1].Cells[i, j];
if (x<>'') then
begin
If ((x='Femenino') or (x='Obrero')or(x='Egresado') or (x='Obrera')or(x='Egresada')) then
begin
x:='2';
end;
If ((x='Masculino') or (x='Empleado')or(x='Ingresado') or (x='Empleada')or(x='Ingresada')) then
begin
x:='1';
end;

if ((j=6) or (j=8) or (j=11)) then
begin
resultado:=EliminarCaracteres(x);
x:=resultado;
end;
contenido := contenido + x;

if (j <> numCampos) then
contenido := contenido + ';';
end;
end;
Cls_Utilidades.CrearArchivoTexto(DirectoryListBox.Directory+'\ArchivoNomina'+Cls_Utilidades.DameFechaSin(Now())+'.txt',contenido);
end;

appExcel.Quit;
appExcel := Unassigned;
Application.MessageBox('Archivo Generado Satisfactoriamente','Atención', MB_ICONINFORMATION);
end
else
Application.MessageBox('Debe seleccionar el Archivo de Excel','Atención', MB_ICONINFORMATION);
end;
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:Leer Archivo excel

Publicado por Alemao (1 intervención) el 21/01/2015 23:37:40
Hola.

El problema es en la línea:

numFilas := appExcel.ActiveCell.Row;

La cual toma el número total de filas hasta la primera vacia.

En lugar de eso puedes usar un repeat de la siguiente forma:

repeat
x := appExcel.WorkBooks[1].Worksheets[1].Cells[i, j];
If ((x='Femenino') or (x='Obrero')or(x='Egresado') or (x='Obrera')or(x='Egresada')) then
x:='2';
Inc(i);
until (VarType(appExcel.WorkBooks[1].Worksheets[1].Cells[i, 1].Value2) = VarEmpty);
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:Leer Archivo excel

Publicado por Victor (1 intervención) el 30/04/2008 00:25:09
uses comobj

procedure TForm1.Button4Click(Sender: TObject);
var
appExcel: Variant;
i, j: integer;
sql: String;
x: string;
const
numCampos: integer = 3;
numFilas: integer = 4;

begin
appExcel := CreateOleObject('Excel.Application');
appExcel.WorkBooks.Open('C:Excel.xls');

Memo1.Lines.Clear;
for i := 2 to (numfilas + 2) do // en la fila 1 esta el nombre del campo
begin
sql := '';
for j := 1 to numCampos do
begin
x := appExcel.WorkBooks[1].Worksheets[1].Cells[i, j];
sql := sql + x + '''';
if j <> numCampos then
sql := sql + ',''';
end;
sql := 'insert into mitabla values(''' + sql + ')';
Memo1.Lines.Add(sql);
end;

appExcel.Quit;
appExcel := Unassigned;
end;
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:Leer Archivo excel

Publicado por pablo (1 intervención) el 14/07/2009 21:48:40
quiero agradecer todo este link referido al manejo de excel, realmenet muy claro y me re-sirvio.

desde gualeguaychu entre rios - ciudad a favor del medioambiente y en contra de pasteras como botnia los 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:Leer Archivo excel

Publicado por man (1 intervención) el 12/05/2010 14:53:28
javascript:alert('Hola bobo');
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