Ir al contenido


Foto

[RESUELTO] Guardar archivo excel en formato 97-2003 con Delphi2007


  • Por favor identifícate para responder
12 respuestas en este tema

#1 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 julio 2011 - 12:29

Pues eso,

Tengo un problema al intentar guardar archivos excel con Delphi 2007, no me permite guardar con el formato de excel 97-2003, estoy utilizando el tipo xlExcel7 y lo guarda con formato 5.0/95,

He estado buscando y encontré que se utiliza el tipo xlExcel8, pero no está declarado por ningún lado.

¿ Alguien sabe como resolver este problema ?

Salud OS
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 julio 2011 - 01:02

Pues a ver un poco de código amigo :D
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 julio 2011 - 01:05

Pues a ver un poco de código amigo


¡Caramba! pues así "nomas"



delphi
  1.   FXLWSheet.SaveAs(File_Name,xlExcel7,EmptyParam,EmptyParam,false,false,
  2.                   EmptyParam,EmptyParam,EmptyParam,FLCID);



Salud OS
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 15 julio 2011 - 01:40

¿En algún lado estás especificando la extensión?, porque creo que si no lo haces automáticamente lo graba en el formato por defecto .xlsx, deberías colocar el FileName como "Archivo.xls".

Saludos.

  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 julio 2011 - 03:16

¿En algún lado estás especificando la extensión?, porque creo que si no lo haces automáticamente lo graba en el formato por defecto .xlsx, deberías colocar el FileName como "Archivo.xls".

Saludos.


Si, le pongo la extensión .xls y me lo guarda con formato 5.0/95, ese es la jodidez de este asunto. Ya chequé en la unidad Excel2000 y tiene lo siguiente:



delphi
  1.   xlExcel5 = $00000027; // Formato Excel 5.0
  2.   xlExcel7 = $00000027; //Formato Excel 95
  3.   xlExcel9795 = $0000002B; //Formato Excel 95/97



Se supondría que el último es el que debería de funcionar, pero manda el siguiente error

---------------------------
OLE error 800A03EC.
---------------------------


En fin, en todo lo que he encontrado nada me ha servido.

Salud OS


  • 0

#6 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 15 julio 2011 - 04:05

Esta me la se!!!!

Tengo publicada por unos foros de openoffice una unidad en delhpi para manejar hojas de calculo sin importar si tienes excel u openoffice instalada: http://www.oooforum....ic.phtml?t=8878

Si miras el codigo de la funcion SaveAs veras como conseguir esto mismo pero usando openoffice, si usas excel el codigo no "fuerza" a que se use el formato excel97... lo tengo implementado pero aun no he actualizado esa pagina, este es el codigo que te falta:



delphi
  1.       //Excel 2007 will use .xlsx instead of .xls, so we force .xls (excel8)
  2.       //file format for back compatibility with older excel version and OO.
  3.       //
  4.       // 51 = xlOpenXMLWorkbook (without macro's in 2007-2010, xlsx)
  5.       // 52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2010, xlsm)
  6.       // 50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro's, xlsb)
  7.       // 56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls)
  8.       // More on this here: [url=http://www.rondebruin.nl/saveas.htm]http://www.rondebruin.nl/saveas.htm[/url]
  9.       Document.Saveas(Name, 56);



Asi que si no me equivoco, el cambio que necesitarias es este:



delphi
  1. FXLWSheet.SaveAs(File_Name,56,EmptyParam,EmptyParam,false,false,
  2.                   EmptyParam,EmptyParam,EmptyParam,FLCID);



Por cierto, la lista de 2 valores para dos formatos de hoja de calculo que dabas complementa la que yo tenia localizada, añadire esa informacion a mi codigo y lo actualizare en esos foros de OpenOffice este mismo lunes.
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 15 julio 2011 - 10:15

c1Hola amigo Sergio

Mañana sábado (hoy para ti) haré la prueba. (y)

Salud OS
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 16 julio 2011 - 08:39

Hola

Pues he probado con el valor que me has proporcionado y ha funcionado como los mismísimos ángeles, muchas gracias amigo, me has sacado de un gran problema :)



delphi
  1. procedure Tbd2xl.Save_File(const File_Path,File_Name:string);
  2. const
  3.   xlExcel97_2003 = $00000038;
  4. begin
  5.   ........
  6.   FxlwSheet.SaveAs(File_Path+File_Name,xlExcel97_2003,EmptyParam,EmptyParam,false,false,
  7.                           EmptyParam,EmptyParam,EmptyParam,FLCID);
  8.   .......
  9. end;



Salud OS
  • 0

#9 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 17 julio 2011 - 04:03

Me alegro mucho de haberte sido de ayuda, cuando lei tu problema me salio una sonrisa y me dije "eh, esta te la sabes, lidiaste con eso hace unas semanas", la verdad da gusto que el foro sirva para compartir esas miles de tonterias que aprendemos cada dia y que te sacan de aprietos, a ti o a los demas, eso no importa, la cosa es que "circulen".
  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 17 julio 2011 - 07:43

Me alegro mucho de haberte sido de ayuda, cuando lei tu problema me salio una sonrisa y me dije "eh, esta te la sabes, lidiaste con eso hace unas semanas", la verdad da gusto que el foro sirva para compartir esas miles de tonterias que aprendemos cada dia y que te sacan de aprietos, a ti o a los demas, eso no importa, la cosa es que "circulen".


La verdad es que bueno que hayas encontrado la respuesta a este tema, busque por todos lados incluso en embarcadero y nada de nada, todos hablaban de cuestiones de version de sistema operativo, de lenguaje y no se que otras tantas cosas más, y yo sólo buscaba el valor correspondiente a Excel 7-2003 :(

Pues nada, realmente es una fortuna pertenecer a ésta comunidad :)

Salud OS
  • 0

#11 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 18 julio 2011 - 01:10

Localizarlo fue cuestion de suerte, aunque entre conocidos y compañeros de trabajo tengo cierta fama de "poner las palabras adecuadas" en google, ellos lo llaman suerte... en este caso esta fue mi apuesta: "excel macro saveas file format xls" y la respuesta me salio en el primer link de todos.
  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 18 julio 2011 - 07:36

Localizarlo fue cuestion de suerte, aunque entre conocidos y compañeros de trabajo tengo cierta fama de "poner las palabras adecuadas" en google, ellos lo llaman suerte... en este caso esta fue mi apuesta: "excel macro saveas file format xls" y la respuesta me salio en el primer link de todos.


Pues suerte o no, a mi se me ocurrió todo menos la palabra macro que es la única palabra que me falto colocar en mis "googleadas", con decirte que lo busque en inglés, francés, ruso, chino, portugués y en español y nada de nada. Hubiera comenzado por hacer la pregunta en delphiaccess y no hubiese perdido tanto tiempo :D :D :D

Salud OS
  • 0

#13 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 18 julio 2011 - 09:28

Añadi "macro" para evitar manuales de novatos sobre la opcion del menu "SaveAs", solo queria el uso desde una macro, no desde el menu, y no puse delphi porque me daba igual el lenguaje utilizado.

Lo de frances y ruso... bueno, incluso en frances usarian "SaveAs", "macro" y "Excel", esas palabras no se traducen, asi que no me preocupe por eso. La verdad, nunca cambio de idioma, siempre temrino localizando lo que sea usando ingles, o si no, pues me rindo!
  • 0




IP.Board spam blocked by CleanTalk.