selecionar planilha em excel

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

selecionar planilha em excel

Mensagem por tonyx »

tenho arquivo em excel= layout.xls
com 3 planilhas
como mudar ou selecionar planilhas: nomes planilha = dados ; aux_G1; G1
o que eu tenho ate agora

oExcel = CREATEOBJECT( "Excel.Application" )
// oExcel := TOleAuto():New( "Excel.Application" )
IF oExcel = nil
alerta("Erro ao Abrir o Excel")
return(ok_xls)
endif
oExcel:WorkBooks:open(arq_tmp) // e esta aqui pois trabalho cima planilha de layout -- ja pronta e so preencher
//oExcel:WorkBooks:Add()
oSheet:= oExcel:get("ActiveSheet")
oExcel:Visible := .f. // start do excel, invisivel

//oSheet:Name:= aba_aux // funciona modo -> oExcel:WorkBooks:add()
//oSheet:Name(aba_aux):Activate() // nao funciona
//oSheet:get(aba_aux):selecet() // nao funciona

==== questao e comando mudar o ativar a planilha para trabalho ---

grato a todos pela ajuda :% :%
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

selecionar planilha em excel

Mensagem por Toledo »

Amigo, tente o seguinte:

Código: Selecionar todos

oExcel:WorkBooks:open(arq_tmp)
oExcel:Sheets("G1"):Select()
oSheet:= oExcel:ActiveSheet()
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

selecionar planilha em excel

Mensagem por tonyx »

grato grande mestre ..

:{ :{ :{ :{
hs_paulo
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 02 Set 2015 17:11
Localização: Bauru

selecionar planilha em excel

Mensagem por hs_paulo »

Estou com um problema. Ja vasculhei todo o forum e não encontei solução.

Eu recebo uma arquivo .xlsx do servidor de internet com os dados de meus produtos. Preciso, por exemplo, atualizar a coluna SALDO e devolver ao servidor pra atualizar.

Como fazer pra atualizar o conteudo de uma celula? Ou simplesmete ler o conteudo?
Paredes01
Usuário Nível 2
Usuário Nível 2
Mensagens: 52
Registrado em: 20 Mai 2012 11:22
Localização: Mérida, Yucatán, México

selecionar planilha em excel

Mensagem por Paredes01 »

Hola

De está forma puedes leer el contenido de una hoja de excel.

En mi caso de acuerdo a una lista en excel hago el backup de algunas facturas (tengo miles de facturas en una carpeta de acuerdo a la lista en excel son las que se copian a otra carpeta).

Anexo archivo para pruebas.

Saludos
Ariel

Código: Selecionar todos

#include "ado.ch"
#include "Fileio.ch"

Procedure Main()
   local oConn, oComm, oRs, oErr
   local cPath:= CurDrive() +":\"+ CurDir() + "\"
   local cTemp:= cPath
   local cConn:= "", cTest, cState
   local cFile:="FACTURAS.xlsx"

   public cFactura

   Cls

   SetMode(25, 80)

   cConn+= 'Provider=Microsoft.ACE.OLEDB.12.0;'
   cConn+= 'Data Source=' + cPath + cFile + ';'
   cConn+= 'Extended Properties="Excel 12.0;HDR=No;IMEX=1";'

   Try
      oConn:=CreateObject( "ADODB.Connection" )
      With object oConn

           :ConnectionString:=cConn
           :Open()
           cState:= oConn:State
           @ 22,01 say "Estatus : " + iif(cState = 0, "Desconectado","Conectado   ")
      End

      oComm:=CreateObject( "ADODB.Command" )
      With object oComm
           :CommandText:="select * from [AURORA$]"
           :CommandType:=adCmdText
           :ActiveConnection:=oConn
           oRs:=:Execute()
      End

      With object oRs

           For i:=1 to 1   // Brincamos la priemra línea
              :MoveNext()
           Next

           Do while !:Eof()

              cFactura := space(12)
              cFactura:= alltrim( :Fields(0):Value) // Folio de Factura

              @ 10, 10 SAY cFactura

              TAREA()

              :MoveNext()
           Enddo
      End

      oRs:Close()
      oConn:Close()
      oRs:=NIL
      oComm:=NIL
      oConn:=NIL

   Catch oErr
      Alert( "Error: " + oErr:Operation + " " + oErr:Description )
   End
Return



//---------------------
Procedure Tarea()
   Local nRow:= Row()
   Local nCol:= Col()

   cUnidad := "C"

   If IsDirectory(cUnidad + ":")
     
      PLSWAIT(.T.,"RESPALDANDO, ESPERE POR FAVOR !!",22,19,24,56)

      cCarpeta  := "BackupFacturas"
      
      If !IsDirectory("C"+ ":\"+cCarpeta)
         MAKEDIR( "C"+ ":\"+cCarpeta)
      Endif
      
      FILECOPY(CurDrive() +":\"+ CurDir() + "\" + cFactura + ".pdf" , cUnidad + ":\" + cCarpeta + "\" + cFactura + ".pdf" )
      FILECOPY(CurDrive() +":\"+ CurDir() + "\" + cFactura + ".xml" , cUnidad + ":\" + cCarpeta + "\" + cFactura + ".xml" )

      PLSWAIT(.F.)
   Else
      PLSWAIT(.T., "No existe la unidad para grabar ..")
      inkey(2)
      PLSWAIT(.F.)
   Endif
   Setpos(nRow,nCol)
Return
Editado pela última vez por Toledo em 04 Fev 2016 19:38, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Responder