tExcel 2003 o 2007

tExcel 2003 o 2007

Postby colthop » Tue Apr 05, 2011 7:48 am

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
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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: tExcel 2003 o 2007

Postby colthop » Tue Apr 05, 2011 8:37 am

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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: tExcel 2003 o 2007

Postby MarioG » Tue Apr 05, 2011 11:54 am

Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: tExcel 2003 o 2007

Postby Sebastián Almirón » Wed Apr 06, 2011 8:10 am

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
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tExcel 2003 o 2007

Postby colthop » Wed Apr 06, 2011 12:18 pm

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
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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: tExcel 2003 o 2007

Postby acuellar » Wed Apr 06, 2011 12:34 pm

Carlos

De esta forma siempre guarda en .XLS 97-2003
Code: Select all  Expand view

  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
 


Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: tExcel 2003 o 2007

Postby Sebastián Almirón » Wed Apr 06, 2011 2:21 pm

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.
User avatar
Sebastián Almirón
 
Posts: 155
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: tExcel 2003 o 2007

Postby colthop » Thu Apr 07, 2011 6:02 am

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:

Code: Select all  Expand view
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


Si podeis ayudarme .

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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: tExcel 2003 o 2007

Postby anserkk » Thu Apr 07, 2011 10:35 am

The 2nd Parameter in SaveAs ie 43 will give you the above said error.

Try 56 instead of 43
Code: Select all  Expand view
oExcel1:ActiveWorkBook:SaveAs("MyFile2003Version",56)  // xlExcel8 (97-2003 format in Excel 2007, .xls)


Regards
Anser
User avatar
anserkk
 
Posts: 1329
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Re: tExcel 2003 o 2007 (SOLUCIONADO)

Postby colthop » Fri Apr 08, 2011 6:14 am

Hola a todos:

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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 93 guests