Abrir fichero excel desde delphi
Debo extraer desde Delphi una columna de datos de un fichero excel. Consigo conectar con el fichero pero no reconoce las filas correctamente, al a帽adir los campos extrae campos de no s茅 d贸nde. Como podr铆a extraer los datos sin problemas ?
GRACIAS
GRACIAS
Con este c贸digo, yo me conecto con excel y busco en la primera columna un determinado texto material y
obtengo una lista de strings que son las celdas inmediatamente siguientes (bueno con una en blanco) para saber cual es la 煤ltima busco otro espacio en blanco.
function TFCalcularCostesMateriales.Obtener_espesores_de(nombrefich,material:string):Tstrings;
var
lcid, contador_fil,contador_col:integer;
nombrefichero:string;
begin
Obtener_espesores_de:=TStringList.Create;
nombrefichero:=fich_precios;
ExcelApplication1.Workbooks.Open(nombrefichero,
emptyParam,emptyParam,emptyParam,emptyParam,
emptyParam,emptyParam,emptyParam,emptyParam,
emptyParam,emptyParam,emptyParam,emptyParam,
LCID);
//conectamos con Excel
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveSheet as _Worksheet);
//Buscamos el material
contador_fil:=2;
while (material<>ExcelWorksheet1.Cells.Item[contador_fil,1].value)and(contador_fil<200) do
contador_fil:=contador_fil+1;
//Listado de espesores
contador_col:=2;
while (\'\'<>String(ExcelWorksheet1.Cells.Item[contador_fil,contador_col].Value))and(contador_col<100) do
begin
Obtener_espesores_de.Add(String(ExcelWorksheet1.Cells.Item[contador_fil,contador_col].Value));
contador_col:=contador_col+2;
end;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;
obtengo una lista de strings que son las celdas inmediatamente siguientes (bueno con una en blanco) para saber cual es la 煤ltima busco otro espacio en blanco.
function TFCalcularCostesMateriales.Obtener_espesores_de(nombrefich,material:string):Tstrings;
var
lcid, contador_fil,contador_col:integer;
nombrefichero:string;
begin
Obtener_espesores_de:=TStringList.Create;
nombrefichero:=fich_precios;
ExcelApplication1.Workbooks.Open(nombrefichero,
emptyParam,emptyParam,emptyParam,emptyParam,
emptyParam,emptyParam,emptyParam,emptyParam,
emptyParam,emptyParam,emptyParam,emptyParam,
LCID);
//conectamos con Excel
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveSheet as _Worksheet);
//Buscamos el material
contador_fil:=2;
while (material<>ExcelWorksheet1.Cells.Item[contador_fil,1].value)and(contador_fil<200) do
contador_fil:=contador_fil+1;
//Listado de espesores
contador_col:=2;
while (\'\'<>String(ExcelWorksheet1.Cells.Item[contador_fil,contador_col].Value))and(contador_col<100) do
begin
Obtener_espesores_de.Add(String(ExcelWorksheet1.Cells.Item[contador_fil,contador_col].Value));
contador_col:=contador_col+2;
end;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;
