Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
20 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 19 Visitantes :: 2 Motores de busca

FAF

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
» Alterar uma palavra num arquivo de texto
Ontem à(s) 12:02 por Teseu

» Buscar endereço por CEP
3/12/2016, 19:59 por pedrossian

» USAR WEBSERVICE NO VFP9
2/12/2016, 09:50 por AJC

» BANIMENTO DE USUARIO
17/11/2016, 08:31 por FAF

» Impressora Ticket
15/11/2016, 09:20 por clima238

» Gráfico
9/11/2016, 10:43 por hidroluz

» TRANSPOR TABELA
9/11/2016, 10:34 por hidroluz

» MUDANÇA DO .DBF PARA POTSGREE
9/11/2016, 09:12 por AJC

» Website com videoaulas sobre linguagens de programação
8/11/2016, 09:56 por JLDR

» Parceria para desenvolvimento de template em Wordpress
7/11/2016, 19:15 por mindix

» Data fica invertida na planilha que é gerada via programa.
27/10/2016, 11:00 por Linghston

» Maximizar report direto do menu
21/10/2016, 20:48 por Rosangela Pires

» Fechar form com tempo
21/10/2016, 10:15 por Rosangela Pires

» URGENTE: Ajuda com impressora ELGIN-L42
14/10/2016, 09:53 por megasoft

» Opções para gerar NF-e
10/10/2016, 09:07 por mavsinfo

» Google Maps
8/10/2016, 15:08 por Rosangela Pires

» Mysql
5/10/2016, 11:22 por Marcos Guedes

» Acessando Banco em MYSQL de um projeto WORDPRESS
3/10/2016, 10:58 por Marcos Guedes

» OPTION SELECT MOSTRAR CAMPOS QUASE PRONTO
26/9/2016, 21:09 por BobKuspe

» Pesquisa em grid
14/9/2016, 09:24 por AJC

Alterar uma palavra num arquivo de texto

5/12/2016, 12:02 por Teseu

Olá prezados colegas de programação!

Este é eu primeiro post no fórum e gostaria de poder …

Comentários: 0

Buscar endereço por CEP

3/12/2016, 19:59 por pedrossian

Caros amigos, meu código para buscar endereço pelo CEP não funciona mais.
Alguém pode me …

Comentários: 0

USAR WEBSERVICE NO VFP9

2/12/2016, 09:50 por AJC

Pessoal, preciso de um material ou livro que me traga instruções como
usar a consumação de …

Comentários: 0

BANIMENTO DE USUARIO

13/11/2016, 16:21 por FAF

A usuária ROSANGELA PIRES ao tentar acessar o Forum obtem sempre a mensagem de BANIMENTO.
A mesma …

Comentários: 3

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 0

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

Os nossos membros postaram um total de 17118 mensagens em 2576 assuntos

Utilizando o EXCEL

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

Anexo Utilizando o EXCEL

Mensagem por Marcos Guedes em 2/4/2009, 16:50

Para os colegas que estiverem interessados, segue uma ótima classe para manipular arquivos do Excel:

Qualquer alteração no código, para melhorar, favor informa-nos.


Código:
*!* Código

*!* Autor: Marcos Guedes
*!* Email: [Você precisa estar registrado e conectado para ver este link.]

CLEAR

obj = NEWOBJECT("excelfiles")
obj.cnamefile = "F:\teste.xls"
*!*obj.cpassword = '654321'
obj.openfile()
?obj.readcellvalue("A1")
?obj.readcellvalue("A2")
*!*obj.cpassword = ''
*!*obj.savefile('')
obj.closefile()
obj = NULL

DEFINE CLASS excelfiles AS CUSTOM

   NAME = "EXCELFILES"
   HIDDEN objexcel
   objexcel = NULL
   cnamefile = ""
   cpassword = NULL
   quitexcel = .T.

   FUNCTION openfile AS logical
      *!* It open o file specified in the property "cNameFile".
      LOCAL fileopened AS logical
      m.fileopened = .F.

      IF FILE(THIS.cnamefile,1) THEN
         TRY
            THIS.objexcel.workbooks.OPEN(THIS.cnamefile,,,,THIS.cpassword)
            m.fileopened = .T.
         CATCH TO oerr
            LOCAL strerro AS STRING
            m.strerro = ""
            m.strerro = "" + m.strerro + "Date: " + DTOC(DATE()) + _enter
            m.strerro = "" + m.strerro + "Hour: " + TIME() + _enter
            m.strerro = "" + m.strerro + "Error: " + ALLTRIM(STR(m.oerr.ERRORNO)) + _enter
            m.strerro = "" + m.strerro + "LineNo: " + ALLTRIM(STR(m.oerr.LINENO)) + _enter
            m.strerro = "" + m.strerro + "Message: " + m.oerr.MESSAGE + _enter
            m.strerro = "" + m.strerro + "Procedure: " + m.oerr.PROCEDURE + _enter
            m.strerro = "" + m.strerro + "Details: " + m.oerr.DETAILS + _enter
            m.strerro = "" + m.strerro + "StackLevel: " + ALLTRIM(STR(m.oerr.STACKLEVEL)) + _enter
            m.strerro = "" + m.strerro + "LineContents: " + m.oerr.LINECONTENTS + _enter + _enter

            STRTOFILE(m.strerro, SYS(5)+CURDIR()+"ErrosABT.log", 1)
            MESSAGEBOX(m.strerro, 16, THIS.NAME)
         FINALLY

         ENDTRY
      ENDIF

      RETURN m.fileopened
   ENDFUNC

   PROCEDURE closefile AS void
      *!* It open o file specified in the property "cNameFile".
      THIS.objexcel.workbooks.CLOSE()
   ENDPROC

   FUNCTION savefile AS logical
      *!* It saves the file with the same name.
      LPARAMETERS m.cpassword AS STRING
      LOCAL filesaved AS logical
      m.filesaved = .F.

      TRY
         IF (VARTYPE(m.cpassword) == "C") THEN
            THIS.objexcel.activeworkbook.PASSWORD = m.cpassword
         ENDIF
         THIS.objexcel.SAVE()
         m.filesaved = .T.

      CATCH TO oerr
         LOCAL strerro AS STRING
         m.strerro = ""
         m.strerro = "" + m.strerro + "Date: " + DTOC(DATE()) + _enter
         m.strerro = "" + m.strerro + "Hour: " + TIME() + _enter
         m.strerro = "" + m.strerro + "Error: " + ALLTRIM(STR(m.oerr.ERRORNO)) + _enter
         m.strerro = "" + m.strerro + "LineNo: " + ALLTRIM(STR(m.oerr.LINENO)) + _enter
         m.strerro = "" + m.strerro + "Message: " + m.oerr.MESSAGE + _enter
         m.strerro = "" + m.strerro + "Procedure: " + m.oerr.PROCEDURE + _enter
         m.strerro = "" + m.strerro + "Details: " + m.oerr.DETAILS + _enter
         m.strerro = "" + m.strerro + "StackLevel: " + ALLTRIM(STR(m.oerr.STACKLEVEL)) + _enter
         m.strerro = "" + m.strerro + "LineContents: " + m.oerr.LINECONTENTS + _enter + _enter

         STRTOFILE(m.strerro, SYS(5)+CURDIR()+"ErrosABT.log", 1)
         MESSAGEBOX(m.strerro, 16, THIS.NAME)

      FINALLY

      ENDTRY

      RETURN m.filesaved
   ENDFUNC

   FUNCTION savefileas AS logical
      *!* It saves the file with other name.
      LPARAMETERS cnewnamefile AS STRING, m.cpassword AS STRING

      IF (VARTYPE(m.cpassword) == "C") THEN
         THIS.objexcel.activeworkbook.PASSWORD = m.cpassword
      ENDIF
      IF (VARTYPE(m.cnewnamefile) == "C") THEN
         THIS.objexcel.activeworkbook.SAVEAS(m.cnewnamefile)
         RETURN .T.
      ELSE
         RETURN .F.
      ENDIF
   ENDFUNC

   FUNCTION readcellvalue
      *!* It edit the value of a cell.
      LPARAMETERS ccelllinecollumn AS STRING
      RETURN THIS.objexcel.RANGE(m.ccelllinecollumn).VALUE
   ENDFUNC

   PROCEDURE editcellvalue AS void
      *!* It edit the value of a cell.
      LPARAMETERS ccelllinecollumn AS STRING, cnewvalue AS STRING
      THIS.objexcel.RANGE(m.ccelllinecollumn).VALUE = m.cnewvalue
   ENDPROC

   PROCEDURE editcellcolor AS void
      *!* It edit the color of a cell.
      *!* Minimum:1 Maximim: 56
      LPARAMETERS ccelllinecollumn AS STRING, ncolor AS INTEGER
      THIS.objexcel.RANGE(m.ccelllinecollumn).interior.colorindex = m.ncolor
   ENDPROC

   PROCEDURE editcellwidth AS void
      *!* It edit the value of a cell.
      LPARAMETERS ccelllinecollumn AS STRING, nwidth AS INTEGER
      THIS.objexcel.RANGE(m.ccelllinecollumn).COLUMNWIDTH = m.nwidth
   ENDPROC

   PROCEDURE insertcelltoright AS void
      LPARAMETERS cellrange AS STRING
      *!* Insere uma nova célula, movendo o restante para a direita
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.INSERT(1)
   ENDPROC

   PROCEDURE deletecelltoleft AS void
      LPARAMETERS cellrange AS STRING
      *!* Remove a célula, movendo o restante para a esquerda
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.DELETE(1)
   ENDPROC

   PROCEDURE insertcelltobottom AS void
      LPARAMETERS cellrange AS STRING
      *!* Insere uma nova célula, movendo o restante para baixo
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.INSERT(2)
   ENDPROC

   PROCEDURE deletecelltotop AS void
      LPARAMETERS cellrange AS STRING
      *!* Remove a célula, movendo o restante para a cima
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.DELETE(2)
   ENDPROC

   PROCEDURE insertrowtobottom AS void
      LPARAMETERS cellrange AS STRING
      *!* Insere uma nova linha acima da célula selecionada, movendo o restante para baixo
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.INSERT(3)
   ENDPROC

   PROCEDURE deletecelltotop AS void
      LPARAMETERS cellrange AS STRING
      *!* Remove a linha da célula selecionada, movendo o restante para cima
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.DELETE(3)
   ENDPROC

   PROCEDURE insertcolltoright AS void
      LPARAMETERS cellrange AS STRING
      *!* Insere uma nova coluna à direita da célula selecionada, movendo o restante para a direita
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.INSERT(4)
   ENDPROC

   PROCEDURE deletecolltoleft AS void
      LPARAMETERS cellrange AS STRING
      *!* Remove a coluna da célula selecionada, movendo o restante para a esquerda
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.DELETE(4)
   ENDPROC

   PROCEDURE deletecolltoleft AS void
      LPARAMETERS cellrange AS STRING
      *!* Remove a coluna da célula selecionada, movendo o restante para a esquerda
      THIS.objexcel.RANGE(m.cellrange).SELECT
      THIS.objexcel.activecell.DELETE(4)
   ENDPROC

   PROCEDURE mergecell AS void
      LPARAMETERS cellrange AS STRING
      *!* Remove a coluna da célula selecionada, movendo o restante para a esquerda
      THIS.objexcel.RANGE(m.cellrange).merge
   ENDPROC

   PROCEDURE editcellheight AS void
      *!* It edit the value of a cell.
      LPARAMETERS ccelllinecollumn AS STRING, nheight AS INTEGER
      THIS.objexcel.RANGE(m.ccelllinecollumn).ROWHEIGHT = m.nheight
   ENDPROC

   PROCEDURE cellbold AS void
      *!* Bold
      LPARAMETERS ccelllinecollumn AS STRING, lbold AS logical
      THIS.objexcel.RANGE(m.ccelllinecollumn).FONT.bold = m.lbold
   ENDPROC

   PROCEDURE cellitalic AS void
      *!* Italic
      LPARAMETERS ccelllinecollumn AS STRING, litalic AS logical
      THIS.objexcel.RANGE(m.ccelllinecollumn).FONT.italic  = m.litalic
   ENDPROC

   PROCEDURE cellunderline AS void
      *!* Underline
      LPARAMETERS ccelllinecollumn AS STRING, lunderline AS logical
      THIS.objexcel.RANGE(m.ccelllinecollumn).FONT.italic  = m.lunderline
   ENDPROC

   PROCEDURE cellforecolor AS void
      *!* Forecolor
      LPARAMETERS ccelllinecollumn AS STRING, ncolor AS INTEGER
      THIS.objexcel.RANGE(m.ccelllinecollumn).FONT.colorindex = m.ncolor
   ENDPROC

   PROCEDURE cellbordersingler AS void
      *!* Forecolor
      LPARAMETERS ccelllinecollumn AS STRING, nstyle AS INTEGER
      THIS.objexcel.RANGE(m.ccelllinecollumn).BORDERS.linestyle = m.nstyle
   ENDPROC

   PROCEDURE cellhorizontalalignment AS void
      *!* 1: Left; 2: Center; 3: Right
      LPARAMETERS ccelllinecollumn AS STRING, nposition AS INTEGER

      DO CASE
         CASE (m.nposition = 1)
            THIS.objexcel.RANGE(m.ccelllinecollumn).horizontalalignment=-4131
         CASE (m.nposition = 2)
            THIS.objexcel.RANGE(m.ccelllinecollumn).horizontalalignment=-4108
         CASE (m.nposition = 3)
            THIS.objexcel.RANGE(m.ccelllinecollumn).horizontalalignment=-4152

         OTHERWISE

      ENDCASE
   ENDPROC

   PROCEDURE showexcel AS void
      THIS.objexcel.VISIBLE = .T. && Excel visible
   ENDPROC

   HIDDEN PROCEDURE INIT AS void
      THIS.objexcel = NEWOBJECT('Excel.Application')
      *!*
      THIS.objexcel.displayalerts = .F. && Disable any dialog message
      THIS.objexcel.VISIBLE = .F. && Excel invisible
   ENDPROC

   HIDDEN PROCEDURE DESTROY AS void
      IF (THIS.quitexcel = .T.) THEN
         THIS.objexcel.QUIT()
      ENDIF
      THIS.objexcel = NULL
   ENDPROC

   HIDDEN PROCEDURE ERROR AS void
      LPARAMETERS nerror, cmethod, nline

      MESSAGEBOX("Erro: " + ALLTRIM(STR(m.nerror)) + _enter+;
         "Método: " + ALLTRIM(m.cmethod) + _enter+;
         "Linha: " + ALLTRIM(STR(m.nline)) + _enter+;
         "Descrição: "+MESSAGE(),16, THIS.NAME)
   ENDPROC

ENDDEFINE


Última edição por Marcos Guedes em 29/6/2009, 08:22, editado 3 vez(es)

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Anexo Re: Utilizando o EXCEL

Mensagem por hugo em 2/4/2009, 18:18

obrigado por compartilhar

hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


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