Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
10 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 10 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Espessura do cursor intermitente

7/3/2017, 09:08 por Jefferson Matakas

Bom dia a todos !!

Existe uma opcao no windows que pode ser acessada atraves da 'central da …

Comentários: 0

DESENVOLVIMENTO EM REDES

4/3/2017, 18:45 por AJC

Pessoal tem ou conhece livros ou material para programação em
redes usando banco de dados nativo …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 4

Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Estatísticas
Temos 7037 usuários registrados
O último usuário registrado atende pelo nome de GETULIO

Os nossos membros postaram um total de 31 mensagens em 17 assuntos

Utilizando o BR Office Calc

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Anexo Utilizando o BR Office Calc

Mensagem por Marcos Guedes em 2/4/2009, 11:38

Segue um modelo simples para manipulação de arquivos do BR Office.
Para ilustração dos recursos que podem ser utilizados, segue em anexo duas classes.

A primeira, "brcalcfiles" mostra como manipular planilhas através do BR Office.
A segunda, "brofficefiles" mostra algumas opções, tais como converter para PDF, HTML e outros...

Havendo alguma mudança na classe, favor postá-la(s) neste fórum para que nossos colegas tomem conhecimento.

Para obter o arquivo, clique aqui!

Só um lembrete: O BR office deverá está instalado!


Última edição por Marcos Guedes em 9/12/2009, 10:53, editado 3 vez(es) (Razão : Lembrete)

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o BR Office Calc

Mensagem por hugo em 2/4/2009, 12:14

marcos

teriamos opcao de utilizar estas classes para trabalha rom o office (M$) ?

valeu
avatar
hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o BR Office Calc

Mensagem por Marcos Guedes em 2/4/2009, 12:27

Estais se referindo em utilizar está classe para tratar arquivos do Excel e Word, por exemplo?
Aqui na empresa faço o seguinte, por exemplo:
Preciso ler dados de um arquivo "xls" existente no site do banco itaú.
uso a rotina do BR office para ler este arquivo.
O mesmo para qualquer outro arquivo que o BR Office suporta.
Dependendo do que precisar, é possível fazer com os recursos do BR Office, mas nem sempre é fácil achar a solução.

Tens um exemplo de como gostarias de utilizar?

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o BR Office Calc

Mensagem por Marcos Guedes em 7/8/2009, 11:46

Para evitar que o link não esteja disponível futuramente, e também facilitar a pesquisa. Segue a rotina:

1. A rotina é composta de duas classes: "brofficefiles" e "brcalcfiles"
2. Segue um exemplo de como utilizá-la:
Código:
CLEAR ALL
WAIT "Aguarde..." WINDOW NOWAIT NOCLEAR

m.obj = NEWOBJECT("brcalcfiles")
m.obj.openfile("f:\nov-2008.xls")
m.obj.exporthtml("f:\teste.html")
m.obj.closefile()
m.obj = NULL

WAIT CLEAR

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o BR Office Calc

Mensagem por Marcos Guedes em 7/8/2009, 11:46

Conteúdo da classe "brofficefiles":
Código:
*!* Autor: Marcos Guedes
*!* Email: [Você precisa estar registrado e conectado para ver este link.]
*!* Havendo alterações para a melhoria da classe, favor enviar-me por email.

DEFINE CLASS brofficefiles AS CUSTOM

   PROCEDURE exportpdf AS void
      *!* Exporta para PDF
      LPARAMETERS cpathfile AS STRING
      m.cpathfile = THIS.oooconverttourl(m.cpathfile)

      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "FilterName", "calc_pdf_Export" )
      THIS.odoc.storetourl( m.cpathfile, @ aonearg)

      m.aonearg = NULL
   ENDPROC

   PROCEDURE exporthtml AS void
      *!* Exporta para HTML
      LPARAMETERS cpathfile AS STRING
      m.cpathfile = THIS.oooconverttourl(m.cpathfile)

      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "FilterName", "HTML (StarCalc)" )
      THIS.odoc.storetourl( m.cpathfile, @ aonearg)

      m.aonearg = NULL
   ENDPROC

   PROCEDURE exportcsv AS void
      *!* Exporta para CSV
      LPARAMETERS cpathfile AS STRING
      m.cpathfile = THIS.oooconverttourl(m.cpathfile)

      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "FilterName", "Text - txt - csv (StarCalc)" )
      THIS.odoc.storetourl( m.cpathfile, @ aonearg)

      m.aonearg = NULL
   ENDPROC

   PROCEDURE exportdif AS void
      *!* Exporta para DIF
      LPARAMETERS cpathfile AS STRING
      m.cpathfile = THIS.oooconverttourl(m.cpathfile)

      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "FilterName", "DIF" )
      THIS.odoc.storetourl( m.cpathfile, @ aonearg)

      m.aonearg = NULL
   ENDPROC

   PROCEDURE exportsylk AS void
      *!* Exporta para SYLK
      LPARAMETERS cpathfile AS STRING
      m.cpathfile = THIS.oooconverttourl(m.cpathfile)

      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "FilterName", "SYLK" )
      THIS.odoc.storetourl( m.cpathfile, @ aonearg)

      m.aonearg = NULL
   ENDPROC

   PROTECTED FUNCTION oooconverttourl( cfilename )
      * Convert a local filename to an OOo URL.
      * Ensure leading slash.
      IF LEFT( cfilename, 1 ) != "/"
         cfilename = "/" + cfilename
      ENDIF

      LOCAL curl
      curl = CHRTRAN( cfilename, "\", "/" ) && change backslashes to forward slashes.
      curl = "file://" + curl
      RETURN curl
   ENDFUNC

   PROTECTED FUNCTION ooomakepropertyvalue( cname, uvalue, nhandle, nstate )
      LOCAL opropertyvalue
      m.opropertyvalue = THIS.ooocreatestruct( "com.sun.star.beans.PropertyValue" )

      m.opropertyvalue.NAME = m.cname
      m.opropertyvalue.VALUE = m.uvalue

      IF TYPE([nHandle])="N"
         m.opropertyvalue.handle = m.nhandle
      ENDIF
      IF TYPE([nState])="N"
         m.opropertyvalue.state = m.nstate
      ENDIF

      RETURN m.opropertyvalue
   ENDFUNC

   PROTECTED FUNCTION ooocreatestruct( ctypename )
      LOCAL oservicemanager
      LOCAL ostruct
      LOCAL colderrhandler

      m.oservicemanager = THIS.ooogetservicemanager()
      m.ostruct = NULL
      m.colderrhandler = ON( "ERROR" )

      ON ERROR = THIS.donothing__errorhandler( ERROR(), MESSAGE(), LINENO(), SYS(16), PROGRAM(), SYS(2018) )
      m.ostruct = m.oservicemanager.bridge_getstruct( m.ctypename )
      ON ERROR &colderrhandler

      IF ISNULL( m.ostruct )
         = THIS.__oooreleasecachedvars()
         m.oservicemanager = THIS.ooogetservicemanager()
         m.ostruct = m.oservicemanager.bridge_getstruct( m.ctypename )
      ENDIF

      m.oservicemanager = NULL

      RETURN m.ostruct
   ENDFUNC

   PROTECTED FUNCTION ooogetservicemanager()
      IF (TYPE([goOOoServiceManager])!="O") OR ISNULL( m.gooooservicemanager )
         LOCAL gooooservicemanager
         m.gooooservicemanager = CREATEOBJECT( "com.sun.star.ServiceManager" )
      ENDIF
      RETURN m.gooooservicemanager
   ENDFUNC

   PROTECTED FUNCTION ooogetdesktop()
      IF (TYPE([goOOoDesktop])!="O") OR ISNULL( m.goooodesktop )
         LOCAL goooodesktop
         m.goooodesktop = THIS.oooservicemanager_createinstance( "com.sun.star.frame.Desktop" )
         COMARRAY( m.goooodesktop, 10 )
      ENDIF
      RETURN m.goooodesktop
   ENDFUNC

   PROTECTED FUNCTION oooservicemanager_createinstance( cservicename )
      LOCAL oservicemanager
      LOCAL oinstance
      LOCAL colderrhandler

      m.oservicemanager = THIS.ooogetservicemanager()
      oinstance = NULL

      m.colderrhandler = ON( "ERROR" )
      ON ERROR = THIS.donothing__errorhandler( ERROR(), MESSAGE(), LINENO(), SYS(16), PROGRAM(), SYS(2018) )
      oinstance = m.oservicemanager.createinstance( cservicename )
      ON ERROR &colderrhandler

      IF ISNULL( oinstance )
         = THIS.__oooreleasecachedvars()
         m.oservicemanager = THIS.ooogetservicemanager()
         oinstance = m.oservicemanager.createinstance( cservicename )
      ENDIF

      RETURN oinstance
   ENDFUNC

   PROTECTED PROCEDURE donothing__errorhandler( pnerror, pcerrmessage, pnlineno, pcprogramfilesys16, pcprogram, pcerrorparamsys2018 )
   ENDPROC

   HIDDEN PROCEDURE __oooreleasecachedvars()
      RELEASE gooooservicemanager, goooodesktop, goooocorereflection
   ENDPROC

ENDDEFINE

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o BR Office Calc

Mensagem por Marcos Guedes em 7/8/2009, 11:46

Conteúdo da classe "brcalcfiles":
Código:
*!* Autor: Marcos Guedes
*!* Email: [Você precisa estar registrado e conectado para ver este link.]
*!* Havendo alterações para a melhoria da classe, favor enviar-me por email.

DEFINE CLASS brcalcfiles AS brofficefiles OF "progs\brOfficeFiles.prg"

   HIDDEN odoc
   HIDDEN osheet
   HIDDEN cpathfile

   odoc = NULL
   osheet = NULL
   calcvisible = .F. && BR Office Calc Visível/Invisível
   cpathfile = ""
   
   PROCEDURE editcellrangecellTableBorder AS void
      *!* Mesclar Células
      LPARAMETERS cellrange, lmerge AS Integer
      THIS.osheet.getcellrangebyname( m.cellrange ).merge(m.lmerge)
   ENDPROC

   PROCEDURE editcellrangecellAligHori AS void
      *!* Alinhamento Horizontal
      LPARAMETERS cellrange, nAlignment AS Integer
      THIS.osheet.getcellrangebyname( m.cellrange ).horijustify = m.nAlignment
   ENDPROC
   
   PROCEDURE editcellrangecellAligVert AS void
      *!* Alinhamento Vertical
      LPARAMETERS cellrange, nAlignment AS Integer
      THIS.osheet.getcellrangebyname( m.cellrange ).vertjustify = m.nAlignment
   ENDPROC

   PROCEDURE editcellrangecellbackcolor AS void
      LPARAMETERS cellrange, cnewvalue AS STRING
      *!* Editar a cor de fundo de uma célula
      *!* cellRange = "A1", "B1", "D4"
      m.cnewvalue = ALLTRIM( STRTRAN( STRTRAN(m.cnewvalue, " ", ""), ",", " " ) )
      m.cnewvalue = ;
         "RGB("+GETWORDNUM(m.cnewvalue,3)+","+GETWORDNUM(m.cnewvalue,2)+","+GETWORDNUM(m.cnewvalue,1)+")"
      m.cnewvalue = &cnewvalue && As cores são o resultado do RGB ao contrário

      THIS.osheet.getcellrangebyname( m.cellrange ).cellbackcolor = m.cnewvalue
   ENDPROC

   PROCEDURE editcellrangeForercolor AS void
      LPARAMETERS cellrange, cnewvalue AS STRING
      *!* Editar a cor do texto de uma célula
      *!* cellRange = "A1", "B1", "D4"
      m.cnewvalue = ALLTRIM( STRTRAN( STRTRAN(m.cnewvalue, " ", ""), ",", " " ) )
      m.cnewvalue = ;
         "RGB("+GETWORDNUM(m.cnewvalue,3)+","+GETWORDNUM(m.cnewvalue,2)+","+GETWORDNUM(m.cnewvalue,1)+")"
      m.cnewvalue = &cnewvalue && As cores são o resultado do RGB ao contrário

      THIS.osheet.getcellrangebyname( m.cellrange ).charcolor = m.cnewvalue
   ENDPROC

   PROCEDURE editcellrangelength AS void
      LPARAMETERS cellrange, nnewvalue AS INTEGER
      *!* Editar o tamanho da fonte da célula
      *!* cellRange = "A1", "B1", "D4"
      THIS.osheet.getcellrangebyname( m.cellrange ).charheight = m.nnewvalue
   ENDPROC

   PROCEDURE editcellrangefontname AS void
      LPARAMETERS cellrange, cnewvalue AS STRING
      *!* Editar o nome da fonte da célula
      *!* cellRange = "A1", "B1", "D4"
      THIS.osheet.getcellrangebyname( m.cellrange ).charfontname = m.cnewvalue
   ENDPROC

   PROCEDURE editcellrangeword AS void
      LPARAMETERS cellrange, cnewvalue AS STRING
      *!* Editar o valor de uma célula com palavras
      *!* cellRange = "A1", "B1", "D4"
      THIS.osheet.getcellrangebyname( m.cellrange ).setstring( m.cnewvalue )
   ENDPROC

   PROCEDURE editcellrangenumber AS void
      LPARAMETERS cellrange, nnewvalue AS NUMBER
      *!* Editar o valor de uma célula com números
      *!* cellRange = "A1", "B1", "D4"
      THIS.osheet.getcellrangebyname( m.cellrange ).setvalue( m.nnewvalue )
   ENDPROC

   PROCEDURE editcellrangeformula AS void
      LPARAMETERS cellrange, cnewvalue AS STRING
      *!* Editar o valor de uma célula com fórmulas
      *!* cellRange = "A1", "B1", "D4"
      THIS.osheet.getcellrangebyname(m.cellrange).setformula( m.cnewvalue )
   ENDPROC

   PROCEDURE editcellrowcollword AS void
      LPARAMETERS ncoll AS INTEGER, nrow AS INTEGER, cnewvalue AS STRING
      *!* Editar o valor de uma célula com palavras
      *!* (nColl, nRow) = (0, 0) = "A1"
      THIS.osheet.getcellbyposition( m.ncoll, m.nrow ).setstring( m.cnewvalue )
   ENDPROC

   PROCEDURE editcellrowcollnumber AS void
      LPARAMETERS ncoll AS INTEGER, nrow AS INTEGER, nnewvalue AS NUMBER
      *!* Editar o valor de uma célula com números
      *!* (nColl, nRow) = (0, 0) = "A1"
      THIS.osheet.getcellbyposition( m.ncoll, m.nrow ).setvalue( m.nnewvalue )
   ENDPROC

   PROCEDURE editcellrowcollformula AS void
      LPARAMETERS ncoll AS INTEGER, nrow AS INTEGER, cnewvalue AS STRING
      *!* Editar o valor de uma célula com fórmulas
      *!* (nColl, nRow) = (0, 0) = "A1"
      THIS.osheet.getcellbyposition(m.ncoll, m.nrow).setformula( m.cnewvalue )
   ENDPROC

   PROCEDURE openfile AS void
      LPARAMETERS cpathfile AS STRING

      m.cpathfile = THIS.oooconverttourl(m.cpathfile)
      THIS.cpathfile = m.cpathfile

      THIS.odoc = THIS.oooopenurl( m.cpathfile )
      THIS.osheet = THIS.odoc.getsheets().getbyindex( 0 )
   ENDPROC

   PROCEDURE newfile AS void
      LPARAMETERS cpathfile AS STRING

      m.cpathfile = THIS.oooconverttourl(m.cpathfile)
      THIS.cpathfile = m.cpathfile

      THIS.odoc = THIS.oooopenurl( "private:factory/scalc" )
      THIS.osheet = THIS.odoc.getsheets().getbyindex( 0 )
   ENDPROC

   PROCEDURE closefile AS void
      THIS.odoc.CLOSE( 1 ) && TRUE
   ENDPROC

   PROCEDURE savefileexcel AS void
      *!* Salva no Formato Excel
      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "FilterName", "MS Excel 97" )
      THIS.odoc.storetourl( THIS.cpathfile, @ aonearg)

      m.aonearg = NULL
   ENDPROC

   PROCEDURE savefilebrcalc AS void
      *!* Salva no formato SXC
      LOCAL ARRAY aonearg[1]
      m.aonearg[1] = THIS.ooomakepropertyvalue( "Overwrite", .T. )
      THIS.odoc.storetourl( THIS.cpathfile, @aonearg )

      m.aonearg = NULL
   ENDPROC

   HIDDEN PROCEDURE INIT AS void
      *!*   THIS.odoc = THIS.oooopenurl( "private:factory/scalc" )
      *!*   THIS.osheet = THIS.odoc.getsheets().getbyindex( 0 )
   ENDPROC

   HIDDEN PROCEDURE DESTROY AS void
      THIS.odoc = NULL
      THIS.osheet = NULL
   ENDPROC

   HIDDEN FUNCTION oooopenurl( curl )
      LOCAL ARRAY anoargs[1]
      LOCAL odesktop
      LOCAL odoc

      m.anoargs[1] = THIS.ooomakepropertyvalue( "Hidden", !(THIS.calcvisible) )

      m.odesktop = THIS.ooogetdesktop()
      m.odoc = m.odesktop.loadcomponentfromurl( m.curl, "_blank", 0, @ anoargs )

      * Make sure that arrays passed to this document are passed zero based.
      COMARRAY( m.odoc, 10 )

      m.anoargs[1] = NULL
      m.anoargs = NULL
      m.odesktop = NULL

      RETURN m.odoc
   ENDFUNC

ENDDEFINE

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o BR Office Calc

Mensagem por Marcos Guedes em 7/8/2009, 11:51

Observações gerais:
Consegui criar esta rotina a partir de códigos fontes que fui adaptando. No momento não lembro as fontes pois faz um bom tempo que desenvolvi esta rotina.

Segue o link que me incentivou para a criação desta rotina de manipulação do BR Office:
[Você precisa estar registrado e conectado para ver este link.]

Agradecimentos também ao Rogério Rios!

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum