TOpenOffice para OPenOffice

Post Reply
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

TOpenOffice para OPenOffice

Post by Ari »

Class TOO

Onde posso encontrar a mais recente ?

Ari
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post by Ari »

eu já vi estas classes aqui, baixei elas, mas nunca usei, autor é

como eu posso entrar em contato com Author ?

$Id: TOO.prg,v 1.2 2006/04/22 02:17:52 _ Exp $
Lira Lira _ Joel [_]
Proyecto: TExcelR
Archivo : TOO.prg
Creado : 01/13/2006, 19:53
Ultima Actualizacion :>: 04/21/2006 20:13
Historial de Cambios :>>

Referencias
================================================================================================
http://www.diariolinux.com/tiki-read_ar ... 092&page=3
ftp://docs-pdf.sun.com/817-1826/817-1826.pdf //Guia de programacion
http://www.oooforum.org/forum //Foro de Soporte
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Amiguinho

Pelo visto voce esta querendo produzir arquivos XLS, estou certo.

Voce ja tentou usar OLE para isto:

Exemplo simples

Code: Select all

*
* ----------------------------------------------------------------
*
FUNCTION OLEEXCEL97()
   LOCAL oExcel, oHoja
   oExcel := TOleAuto():New( "Excel.Application" )
   oExcel:WorkBooks:Add()
   oHoja := oExcel:ActiveSheet()
   oHoja:Cells:Font:Name := "Arial"
   oHoja:Cells:Font:Size := 12
   oHoja:Cells( 3, 1 ):Value := "Texto:"
   oHoja:Cells( 3, 2 ):Value := "Esto es un texto"
   oHoja:Cells( 4, 1 ):Value := "Número:"
   oHoja:Cells( 4, 2 ):NumberFormat := "#.##0,00"
   oHoja:Cells( 4, 2 ):Value := 1234.50
   oHoja:Cells( 5, 1 ):Value := "Lógico:"
   oHoja:Cells( 5, 2 ):Value := .T.
   oHoja:Cells( 6, 1 ):Value := "Fecha:"
   oHoja:Cells( 6, 2 ):Value := DATE()
   oHoja:Columns( 1 ):Font:Bold := .T.
   oHoja:Columns( 2 ):HorizontalAlignment := -4152  // xlRight
   oHoja:Columns( 1 ):AutoFit()
   oHoja:Columns( 2 ):AutoFit()
   oHoja:Cells( 1, 1 ):Value := "OLE desde FW"
   oHoja:Cells( 1, 1 ):Font:Size := 16
   oHoja:Range( "A1:B1" ):HorizontalAlignment := 7
   oHoja:Cells( 1, 1 ):Select()
   oExcel:Visible := .T.
   oHoja:End()
   oExcel:End()
   RETURN
Exemplo mais completo com escrita e leitura de XLS's

Code: Select all

*
* ----------------------------------------------------------------
*
FUNCTION OLEExcel()
   LOCAL oWnd, oMenu
   MENU oMenu
      MENUITEM "&Probar Excel y DBF"
      MENU
         MENUITEM "&Leer SIGLAS.XLS" ACTION LEER()
         MENUITEM "&Enviar SIGLAS.DBF a Excel" ACTION ENVIAR() WHEN FILE( "SIGLAS.DBF" )
         SEPARATOR
         MENUITEM "&Salir" ACTION oWnd:End()
      ENDMENU
   ENDMENU
   DEFINE WINDOW oWnd FROM 0,0 TO 20,70 MENU oMenu TITLE "Probar Excel y DBF"
   ACTIVATE WINDOW oWnd MAXIMIZED
   RETURN

FUNCTION LEER()
   LOCAL oExcel, oHoja, nRows, nCols
   LOCAL aCampos:={}, nRow, nCol
   oExcel := TOleAuto():New( "Excel.Application" )
   oExcel:WorkBooks:Open(SFN2LFN(cFilePath(GetModuleFileName(GetInstance()))+"SIGLAS.xls"))
   oHoja := oExcel:Get( "ActiveSheet" )
   nRows := oHoja:UsedRange:Rows:Count()
   nCols := oHoja:UsedRange:Columns:Count()
   FOR nCol := 1 TO nCols
      IF ValType( oHoja:Cells( 2, nCol ):Value ) = "C"
         AADD( aCampos, { oHoja:Cells( 1, nCol ):Value, "C", 80, 0 } )

      ELSEIF ValType( oHoja:Cells( 2, nCol ):Value ) = "N"
         AADD( aCampos, { oHoja:Cells( 1, nCol ):Value, "N", 15, 4 } )

      ELSEIF ValType( oHoja:Cells( 2, nCol ):Value ) = "L"
         AADD( aCampos, { oHoja:Cells( 1, nCol ):Value, "L", 1, 0 } )

      ELSEIF ValType( oHoja:Cells( 2, nCol ):Value ) = "D"
         AADD( aCampos, { oHoja:Cells( 1, nCol ):Value, "D", 8, 0 } )
      ENDIF
   NEXT
   DBCREATE( "EXCEL", aCampos )
   USE "EXCEL" NEW
   FOR nRow := 2 TO nRows
      APPEND BLANK
      FOR nCol := 1 TO nCols
         FIELDPUT( nCol, oHoja:Cells( nRow, nCol ):Value )
      NEXT
   NEXT
   CLOSE DATABASES
   oExcel:Quit()
   oHoja:End()
   oExcel:End()
   MsgInfo( "Foi criado o arquivo EXCEL.DBF" )
   RETURN

FUNCTION ENVIAR()
   LOCAL oExcel, oHoja
   LOCAL nRow := 1, nCol
   oExcel := TOleAuto():New( "Excel.Application" )
   oExcel:WorkBooks:Add()
   oHoja := oExcel:Get( "ActiveSheet" )
   USE "SIGLAS" NEW
   FOR nCol := 1 TO FCOUNT()
      oHoja:Cells( nRow, nCol ):Value := FieldName( nCol )
   NEXT
   DO WHILE .NOT. EOF()
      nRow++
      FOR nCol := 1 TO FCOUNT()
         oHoja:Cells( nRow, nCol ):Value := FieldGet( nCol )
      NEXT
      SKIP
   ENDDO
   FOR nCol := 1 TO FCOUNT()
      oHoja:Columns( nCol ):AutoFit()
   NEXT
   CLOSE DATABASES
   oExcel:Visible := .T.
   oHoja:End()
   oExcel:End()
   RETURN
@braços : ? )
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post by Ari »

Obrigado mesmo assim: mas o meu cliente quer usar o OpenOffive.org no lugar do MS-Office e o _ tá desenvolvendo esta classe, é que tentei usar o exemplo que ele postou faz tempo e dá erros, ai estava tentando achar ele para conversar.

No Brasil tão usando o BRoffice.

Ari
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Amiguinho

Se voce encontrar na documentaçao do OpenOffice algo sobre seus controles activex ou OCX talvez seja possivel criar uma ponte usando OLE e Activex do Fivewin para manipular-los

Um bom programa para isto é o ActiveXXX que lista todas DLLs e OCX instaladas e apresenta as propriedades e métodos ficando mais fácil trabalhar com elas

Eu inclisve andei fuçando nele para usar os mais nnovos controles do Windows para minhas interfaces.

qualquer coisa me contacte no fivolution@hotmail.com a noite que batemos um papinho.

@braços :?)
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post by Ari »

eu consegui contato com o cara que fez a TopenOffice mas ainda nao consegui passar do ponto em que se conecta com o office. mas na abertura da planilha dá um pau.

Ari
User avatar
ronaldo
Posts: 137
Joined: Fri Nov 25, 2005 4:38 pm
Location: brasil
Contact:

Post by ronaldo »

Caso vcs precisem me mandem um email para ronaldo@bazevani.com.br

eu utiliza o Microsoft Word com TWORD e OpenOffice com TOffice 100%
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post by Ari »

Vc tem a classe do _ para falar com o Office.br ?
Verhoven
Posts: 435
Joined: Sun Oct 09, 2005 7:23 pm

Post by Verhoven »

I only need to save the file with a given name, don´t need to show the excel sheet.

The above first sample give me error in line: oHoja:End()

Please how to do that.
Gale FORd
Posts: 663
Joined: Mon Dec 05, 2005 11:22 pm
Location: Houston
Contact:

Post by Gale FORd »

:end() no longer used when using xHarbour.
User avatar
ronaldo
Posts: 137
Joined: Fri Nov 25, 2005 4:38 pm
Location: brasil
Contact:

Post by ronaldo »

Bom pessoal.... pegue o exemplo em meu site:

www.bazevani.com.br/ronaldo/office.zip

dentro dele você encontra 3 arquivos.

toffice.prg --> Interface openoffice (br)
tword.prg -->> Microsoft Word
prg2714.prg -> Este programa se comunica com as duas versoes word e office...
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post by Ari »

Ronando,

obrigado, já faz dias que baixei o exemplo ..agora que comecei a tentar pelo BrOffice, e tá dando erro no

o meu documento eu passo como c:\sisrev\win\debito.odt

oDesktop:loadComponentFromURL(cDocument, "_blank" , 0, aArg)

retorna o erro: Ole Error

LoadComponentFromUrl: DISP_E_TYPEMISMATCH

Ari
User avatar
ronaldo
Posts: 137
Joined: Fri Nov 25, 2005 4:38 pm
Location: brasil
Contact:

Post by ronaldo »

vc devera usr o openoffice 2.0 ou superior
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Post by Ari »

eu testei com o BrOffice.org 2.0 vou baixar o direto do openoffice.org

Obrigado
Ari
User avatar
ronaldo
Posts: 137
Joined: Fri Nov 25, 2005 4:38 pm
Location: brasil
Contact:

Post by ronaldo »

vc esta emq aul versão do fivewin 2.8? me mande o log de errook
Post Reply