Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0 (https://www.clubdelphi.com/foros/showthread.php?t=29365)

RONPABLO 19-01-2006 23:13:53

como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0
 
Hola, cordial saludo, estoy trabajando con un componente llamado TDatoToXLS para guardar en un archivo de excel el contenido de un query, como tal me trabaja bien todo el proceso de guardar... Pero posteriormente necesito cargar el contenido de los archivos de excel que creo con dicho componente dentro de una base de datos, para esto hago una conexión por medio de odbc y es aquí donde tengo el problema ya que al tratar de conectar me pone problema ya que el componente me crea los archivos con formato excel 2.1 y lo necesito excel 8.0, para solucionar esto abro el archivo desde excel y le doy guardar, inmediatamente me indica que si lo quiero actualizar en la ultima versión de excel y con eso me corrige el problema y ya lo puedo cargar, mi pregunta es como puedo hacer para guardar mi archivo de excel con la versión 8.0, no es necesario hacerlo desde el componente TDataToXLS

roman 20-01-2006 01:40:01

Pues se me ocurre que abras el archivo con los componentes de la paleta Seres y lo guardes acto seguido. La componente ExcelApplication tiene una propiedad DisplayWarnings (o algo así) que si la pones en false se supone que no te muestra mensajes de aviso, así que todo el proceso sería transparente al usuario.

Por cierto, me parece que esa componente que menciona es la delphi.com.ar. De ser así nunca está de más una mención al autor, máxime siendo Federico un activo y generoso participante en estos foros.

// Saludos

RONPABLO 20-01-2006 17:36:40

Primero que todo agradecer a Roman por su pronta respuesta... A continuación paso a describir como estoy haciendo lo que me sugirio

Código Delphi [-]
 
var
   Libro : _WORKBOOK;
   Hoja  : _WORKSHEET;
begin
   try
      try
         Excel := CreateOLEObject('Excel.Application');
         Excel.Workbooks.Open(rutaArchivo);
         Excel.DisplayAlerts := false;
//         Excel.DisplayAlerts[0]:= True;
         Excel.Save;
         Excel.Quit;
//         Excel.SaveAs;
         {rutaArchivo,null,
            Null,
            Null,
            false,
             false,
             xlNoChange,
             xlUserResolution,
             false,
             Null,
             Null,
             0
           );}
      except
         raise;
      end;
   finally
      Excel.Quit;
   end;
end;

Pero al guardar no me cambia el formato del archivo a excel 8.0, sera posible que desde los parametros que trae SaveAs se pueda hacer esto, como tal desde excel al darle "guardar como" aparese una opción de cambiar el formato del archivo a excel 3.0, 4.0... y otros superiores, me imagino que desde codigo pueda hacer esto de forma trasparente, he buscado en las ayudas de excel pero no tengo instalado las ayudas para vb, por el momento sigo buscando por otro lado y esperando a ver si el codigo que tengo esta errado, de antemano muchas gracias.

roman 20-01-2006 18:06:02

Cita:

Empezado por RONPABLO
pero no tengo instalado las ayudas para vb

Yo sí :)

El segundo parámetro de SaveAs es el que le indica el tipo de archivo. La lista de formatos posibles:

Código:

xlAddIn                xlSYLK
xlCSV                  xlTemplate
xlCSVMac              xlTextMac
xlCSVMSDOS            xlTextMSDOS
xlCSVWindows          xlTextPrinter
xlCurrentPlatformText  xlTextWindows
xlDBF2                xlUnicodeText
xlDBF3                xlWJ2WD1
xlDBF4                xlWK1
xlDIF                  xlWK1ALL
xlExcel2              xlWK1FMT
xlExcel2FarEast        xlWK3
xlExcel3              xlWK4
xlExcel4              xlWK3FM3
xlExcel4Workbook      xlWKS
xlExcel5              xlWorkbookNormal
xlExcel7              xlWorks2FarEast
xlExcel9795            xlWQ1
xlHTML                xlWJ3
xlIntlAddIn            xlWJ3FJ3

// Saludos

RONPABLO 23-01-2006 06:02:38

Muchas gracias Roman, ya coloque el parametro que necesitaba (xlExcel9795) y me funciono muy bien.


La franja horaria es GMT +2. Ahora son las 16:19:03.

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