PDA

Ver la Versión Completa : como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0


RONPABLO
19-01-2006, 23:13:53
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


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
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:


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.