tExcel 2003 o 2007
tExcel 2003 o 2007
Hola a todos:
Paso a comentaros un problema por si alguien sabe la solución. Tengo varias aplicaciones que hacen hojas Excel y funcionan correctamente, pero cuando esta instalado el Office 2007 sigue creandolas bien pero en formato XLSX en vez de XLS aunque yo ponga la extension XLS, mi pregunta es la siguiente:
¿ Alguien sabe como forzar a que se grabe en formato 2003 o XLS en vez de 2007 o XLSX cuando se utiliza la clase tExcel ?
Un saludo
Carlos
Paso a comentaros un problema por si alguien sabe la solución. Tengo varias aplicaciones que hacen hojas Excel y funcionan correctamente, pero cuando esta instalado el Office 2007 sigue creandolas bien pero en formato XLSX en vez de XLS aunque yo ponga la extension XLS, mi pregunta es la siguiente:
¿ Alguien sabe como forzar a que se grabe en formato 2003 o XLS en vez de 2007 o XLSX cuando se utiliza la clase tExcel ?
Un saludo
Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Re: tExcel 2003 o 2007
Hola de nuevo se me olvido deciros que si alguien sabe donde puedo ver todas las opciones de la clase tExcel me lo podria comunicar, gracias.
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Re: tExcel 2003 o 2007
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: tExcel 2003 o 2007
Si quieres guardar un libro en un formato o versión diferente del de la versión Excel que tengas instalada, deberás utilizar el método SaveAs en lugar del método Save.
No se como utilizas Excel, pero sería algo así:
oExcel:ActiveWorkBook:SaveAs('nombre del fichero',numero de formato) // numero de formato = 43 para formato Excel 97
Busca en Excel la propiedad xlFileformat para ver los distintos formatos en los que se puede guardar.
Eso no evitará que si quien se encarga de guardar el libro es el usuario, por defecto se siga guardando en formato 2007.
Para evitarlo, hay que modificar en excel la forma en que se guandan los libros Excel:
En Excel 2007, botón de Excel -> Opciones de Excel -> Guardar -> Guardar archivos en formato: Libro Excel 97-2003
Saludos
No se como utilizas Excel, pero sería algo así:
oExcel:ActiveWorkBook:SaveAs('nombre del fichero',numero de formato) // numero de formato = 43 para formato Excel 97
Busca en Excel la propiedad xlFileformat para ver los distintos formatos en los que se puede guardar.
Eso no evitará que si quien se encarga de guardar el libro es el usuario, por defecto se siga guardando en formato 2007.
Para evitarlo, hay que modificar en excel la forma en que se guandan los libros Excel:
En Excel 2007, botón de Excel -> Opciones de Excel -> Guardar -> Guardar archivos en formato: Libro Excel 97-2003
Saludos
Re: tExcel 2003 o 2007
Hola a Todos y en especial a Sebastian y Mario:
He intentado lo que me poneis y grabando con WorkBook:SaveAs(`'Nombre de Fichero',43) o oExcel:ActiveWorkBook:SaveAs(`'Nombre de Fichero',43) y tambien de multiples formas pero siempre me da un mensaje o parecido:
Error Excel.Application:ACTIVEWORKBOOK/3 DISP_E_MEMBERNOTFOUND: SAVEAS
Y de hay no salgo ponga lo que ponga.
Si me podeis ayudar gracias
Carlos
He intentado lo que me poneis y grabando con WorkBook:SaveAs(`'Nombre de Fichero',43) o oExcel:ActiveWorkBook:SaveAs(`'Nombre de Fichero',43) y tambien de multiples formas pero siempre me da un mensaje o parecido:
Error Excel.Application:ACTIVEWORKBOOK/3 DISP_E_MEMBERNOTFOUND: SAVEAS
Y de hay no salgo ponga lo que ponga.
Si me podeis ayudar gracias
Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Re: tExcel 2003 o 2007
Carlos
De esta forma siempre guarda en .XLS 97-2003
Saludos,
Adhemar
De esta forma siempre guarda en .XLS 97-2003
Code: Select all
oExcel:=CreateObject( "excel.application" )
oExcel:DisplayAlerts=.F.
oBook:=oExcel:Workbooks:Add()
oSheet:=oExcel:ActiveSheet
oSheet:Range( "A1" ):Value ="TITULO DE LA PLANILLA"
oSheet:Range( "A1:D1" ):HorizontalAlignment := xlHAlignCenterAcrossSelection //Centra el titulo
oBook:SaveAs( "C:\PLANILLA.XLS" )
oExcel:Visible = .T. //Abre la planilla
Adhemar
Saludos,
Adhemar C.
Adhemar C.
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: tExcel 2003 o 2007
Si no lo consigues, pega un trozo del código a ver que pasa.
Me da la sensación de que ese error es porque aun no tienes ningún libro creado o abierto.
Me da la sensación de que ese error es porque aun no tienes ningún libro creado o abierto.
Re: tExcel 2003 o 2007
Hola de nuevo:
He intentado lo que me has puesto y lo unico que ha hecho es no poner el mensaje de error pero el formatosigue siendo XLSX con extensión XLS. Aqui os pongo como hago el archivo:
Si podeis ayudarme .
Un saludo
Carlos
He intentado lo que me has puesto y lo unico que ha hecho es no poner el mensaje de error pero el formatosigue siendo XLSX con extensión XLS. Aqui os pongo como hago el archivo:
Code: Select all
SELECT 51
oExcel1 := TOleAuto():New( "Excel.Application" )
oWorkBook:=oExcel1:WorkBooks:Add()
oHoja1 := oExcel1:Get( "ActiveSheet" )
oHoja1:Cells:Font:Name := "Arial"
oHoja1:Cells:Font:Size := 10
oHoja1:Cells(1, 1):Font:Bold := .T.
oHoja1:Cells(1, 1):Value := "FIRMA_NUM_REG"
oHoja1:Cells(1, 2):Font:Bold := .T.
oHoja1:Cells(1, 2):Value := "SEGMENTO"
oHoja1:Cells(1, 3):Font:Bold := .T.
if opc = 1
oHoja1:Cells(1, 3):Value := "PERIODO"
else
oHoja1:Cells(1, 3):Value := "AÑO"
endif
oHoja1:Cells(1, 4):Font:Bold := .T.
oHoja1:Cells(1, 4):Value := "CCAA"
oHoja1:Cells(1, 5):Font:Bold := .T.
oHoja1:Cells(1, 5):Value := "VENG95SPB"
oHoja1:Cells(1, 6):Font:Bold := .T.
oHoja1:Cells(1, 6):Value := "VENG97CPB"
oHoja1:Cells(1, 7):Font:Bold := .T.
oHoja1:Cells(1, 7):Value := "VENG98SPB"
oHoja1:Cells(1, 8):Font:Bold := .T.
oHoja1:Cells(1, 8):Value := "VENGOA"
oHoja1:Cells(1, 9):Font:Bold := .T.
oHoja1:Cells(1, 9):Value := "VENNGO"
oHoja1:Cells(1,10):Font:Bold := .T.
oHoja1:Cells(1,10):Value := "VENGOB"
oHoja1:Cells(1,11):Font:Bold := .T.
oHoja1:Cells(1,11):Value := "VENP_S_I_GOB"
oHoja1:Cells(1,12):Font:Bold := .T.
oHoja1:Cells(1,12):Value := "VENGOC"
oHoja1:Cells(1,13):Font:Bold := .T.
oHoja1:Cells(1,13):Value := "VOL_GOC_UE"
oHoja1:Cells(1,14):Font:Bold := .T.
oHoja1:Cells(1,14):Value := "VENBIOD"
oHoja1:Cells(1,15):Font:Bold := .T.
oHoja1:Cells(1,15):Value := "VENP_S_I_FOB"
oHoja1:Cells(1,16):Font:Bold := .T.
oHoja1:Cells(1,16):Value := "VENPIEVM_FOB"
oHoja1:Cells(1,17):Font:Bold := .T.
oHoja1:Cells(1,17):Value := "CNT_FOB_UE"
oHoja1:Cells(1,18):Font:Bold := .T.
oHoja1:Cells(1,18):Value := "VENP_S_I_FOE"
oHoja1:Cells(1,19):Font:Bold := .T.
oHoja1:Cells(1,19):Value := "VENPIEVM_FOE"
oCol = 2
do while .T.
if eof()
exit
endif
oHoja1:Cells(oCol, 1):Value := VDTMA2->firma
oHoja1:Cells(oCol, 2):Value := VDTMA2->segmento
if opc = 1
oHoja1:Cells(oCol, 3):Value := VDTMA2->periodo
else
oHoja1:Cells(oCol, 3):Value := VDTMA2->ano
endif
oHoja1:Cells(oCol, 4):Value := VDTMA2->ccaa
if veng95spb > 0.000
oHoja1:Cells(oCol, 5):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 5):Value := VDTMA2->veng95spb
endif
if veng97cpb > 0.000
oHoja1:Cells(oCol, 6):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 6):Value := VDTMA2->veng97cpb
endif
if veng98spb > 0.000
oHoja1:Cells(oCol, 7):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 7):Value := VDTMA2->veng98spb
endif
if vengoa > 0.000
oHoja1:Cells(oCol, 8):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 8):Value := VDTMA2->vengoa
endif
if venngo > 0.000
oHoja1:Cells(oCol, 9):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 9):Value := VDTMA2->venngo
endif
if vengob > 0.000
oHoja1:Cells(oCol,10):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,10):Value := VDTMA2->vengob
endif
if venpsigob > 0.000
oHoja1:Cells(oCol,11):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,11):Value := VDTMA2->venpsigob
endif
if vengoc > 0.000
oHoja1:Cells(oCol,12):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,12):Value := VDTMA2->vengoc
endif
if vol_goc_ue> 0.000
oHoja1:Cells(oCol,13):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,13):Value := VDTMA2->vol_goc_ue
endif
if venbiod > 0.000
oHoja1:Cells(oCol,14):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,14):Value := VDTMA2->venbiod
endif
if venpsifob > 0.000
oHoja1:Cells(oCol,15):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,15):Value := VDTMA2->venpsifob
endif
if venpievmfo> 0.000
oHoja1:Cells(oCol,16):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,16):Value := VDTMA2->venpievmfo
endif
if cnt_fob_ue> 0.000
oHoja1:Cells(oCol,17):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,17):Value := VDTMA2->cnt_fob_ue
endif
if venpsifoe > 0.000
oHoja1:Cells(oCol,18):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,18):Value := VDTMA2->venpsifoe
endif
if venpievfoe> 0.000
oHoja1:Cells(oCol,19):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,19):Value := VDTMA2->venpievfoe
endif
oCol = oCol + 1
skip + 1
enddo
oHoja1:=NIL
* oWorkBook:SaveAs(xfich2,43)
oWorkBook:SaveAs(xfich2)
* oExcel1:ActiveWorkBook:SaveAs(xfich2,43)
oExcel1:quit()
oExcel1:=NIL
Un saludo
Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Re: tExcel 2003 o 2007
The 2nd Parameter in SaveAs ie 43 will give you the above said error.
Try 56 instead of 43
Regards
Anser
Try 56 instead of 43
Code: Select all
oExcel1:ActiveWorkBook:SaveAs("MyFile2003Version",56) // xlExcel8 (97-2003 format in Excel 2007, .xls)
Anser
Re: tExcel 2003 o 2007 (SOLUCIONADO)
Hola a todos:
Es para dar las gracias a Anser ya que su post me ha solucionado el problema.
Un saludo
Carlos
Es para dar las gracias a Anser ya que su post me ha solucionado el problema.
Un saludo
Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.