Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2007
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post Problemas para abrir archivo EXCEL

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 [-]
  // aqui comienza el tratamiento del EXCEL
  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; //Destino
    DMImportExcel.mdImportDataPrefijo.value:= ADODataSetXls.fields[1].AsInteger; //Prefijo
    DMImportExcel.mdImportDataPrecio.value:= ADODataSetXls.fields[2].AsFloat; //Precio
    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!
__________________
Saludos.

Marcelo D. Alegre
Responder Con Cita
  #2  
Antiguo 18-09-2007
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Smile Gracias Roman :)

Evidentemente no habia buscado bien en los foros y la respuesta estaba AQUI!!,, Les paso para el que lo necesite el codigo para conseguir el nombre de la primera hora para hacer el procesamiento. Esto es una modificacion de un codigo ya posteado por roman, GRACIAS.

Código Delphi [-]
procedure HojasExcel(Archivo: String; var nombreHoja:String);
var
  Excel: OleVariant;
  Libro: OleVariant;
  I: Integer;
begin
  Excel := CreateOleObject('Excel.Application');
  Libro := Excel.WorkBooks.Open(Archivo);
  nombreHoja:= Libro.Worksheets.Item[1].Name; //Hoja 1 del archivo excel
  Libro.Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
var nombreHoja:string;
begin
  HojasExcel('c:\archivo.xls',nombreHoja);
  showmessage(nombreHoja);
end;
__________________
Saludos.

Marcelo D. Alegre
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas importando archivo Excel duilioisola Servers 2 19-09-2007 18:31:46
Como abrir y modificar un archivo de Excel en builder pollo_c C++ Builder 0 17-08-2007 16:07:27
Problemas para abrir proyectos antiguos. rociosantos OOP 1 15-05-2007 23:02:46
Obtener nombres de las hojas al abrir un archivo (fichero) de Excel atirado API de Windows 1 17-05-2004 21:50:31
¿Qué instrucción es necesaria para abrir un archivo PDF? vhirginia Varios 10 07-05-2004 00:05:36


La franja horaria es GMT +2. Ahora son las 11:33: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
Copyright 1996-2007 Club Delphi