Buenos Dias amigos
Les molesto porque estoy con el siguiente inconveniente:
Estoy procesando un archivo excel que cargo luego en otra estructura. El problema esta en que si la hoja en cuestion no se llama Hoja1 no abre el archivo. Para abrir el excel estoy usando un adoConnection y un adoDataset.
El codigo que uso es el siguiente:
Código Delphi
[-]
ADODataSetXls.Active:=false;
DMImportExcel.mdImportData.Close;
DMImportExcel.mdImportData.Open;
DMImportExcel.mdImportData.ReadOnly:=false;
ADOConexionXls.ConnectionString:=ADOConexionXls.ConnectionString+';Data Source='+edArchivoOrigen.text;
ADODataSetXls.Active:=true;
ADODataSetXls.first;
initProgress('Extrayendo Datos desde Excel.', ADODataSetXls.RecordCount);
try
while not ADODataSetXls.eof do
begin
DMImportExcel.mdImportData.Insert;
if (ADODataSetXls.fields[0].AsString = '') or (ADODataSetXls.fields[1].AsInteger = 0) or (ADODataSetXls.fields[1].AsInteger = NULL) then
ADODataSetXls.Next;
DMImportExcel.mdImportDataDestino.value:= ADODataSetXls.fields[0].AsString; DMImportExcel.mdImportDataPrefijo.value:= ADODataSetXls.fields[1].AsInteger; DMImportExcel.mdImportDataPrecio.value:= ADODataSetXls.fields[2].AsFloat; DMImportExcel.mdImportData.Post;
ADODataSetXls.Next;
AdvanceProgress();
end;
except
memoLog.Lines.Add('Error al Cargar Archivo Excel, verifique los datos del mismo!.');
exit;
end;
Si la hoja no se llama Hoja1 cuando hace el ADODataSetXls.Active:=true; el procedimiento se suspende sin dar error alguno... Si se llama Hoja1 anda todo correctamente!
Existe manera de que abra cualquier hoja (la primera de todas me interesa) dado que en el adoDataset tengo la propiedad CommandText en Hoja1$ ... pero me gustaria poder poner ahi, la primera hora sin importar el nombre...
GRACIAS!