Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
18 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 18 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
TRY BEGIN E FLOCK()

17/4/2017, 10:32 por AJC

Pessoal estou tendo alguns problemas de gravação em rede, estou usando
try begin, mas vi algo na …

Comentários: 0

Exportar Dados Campo Memo Tabela DBF

10/4/2017, 10:28 por fcampos

Olá bom dia.

Estou tentando exportar os dados de algumas tabelas em formato dbf pelo foxpro.
O …

Comentários: 2

Função EVL()

8/4/2017, 12:18 por Clebervfp

Bom dia a todos.
Vim compartilhar de uma Função do próprio VFP que me benefício muito.
Função …

Comentários: 0

COMO BLOQUEAR REGISTRO OU TABELA NO VISUAL FOXPRO PARA GRAVAÇÃO EM REDE

3/4/2017, 10:29 por AJC

Pessoal estou tendo um problema que acontece sempre busco na minha tabela de clientes o ultimo …

Comentários: 2

Controlar Scanner Twain

31/3/2017, 17:31 por Kleber R Bento

Estou usando o EZTW32.DLL para criar uma ferramenta que escaneia e gera PDF. Porém com esses …

Comentários: 0

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

Os nossos membros postaram um total de 48 mensagens em 25 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
avatar
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