Clipper On Line • Ver Tópico - Exportar para excel com Abas

Exportar para excel com Abas

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

Moderador: Moderadores

 

Exportar para excel com Abas

Mensagempor marcos.gurupi » 22 Jan 2010 13:30

Caros exportar rel para o excel nos jah falamos aqui no forum e tem varios exemplos. Mas alguem saberia me dizer como faco para exportar o relatorio para o excel e adicionar abas?

Marcos Roberto.
Marcos Roberto
NetService Software
marcos.gurupi
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 930
Data de registro: 06 Jul 2004 11:53
Cidade/Estado: Gurupi-TO
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Re: Exportar para excel com Abas

Mensagempor sygecom » 22 Jan 2010 21:00

Marcos, como você mostra os relatórios do seu sistema ? dependendo de como você usa posso lhe ajudar postando alguns exemplos.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Re: Exportar para excel com Abas

Mensagempor Toledo » 23 Jan 2010 14:05

Marcos, dê uma olhada neste exemplo:

FUNCTION MAIN()
LOCAL oExcel, oSheet

oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Add()
oSheet := oExcel:Get( "ActiveSheet" )
oSheet:Name := "Aba 1"

oSheet:Cells( 1, 1 ):Value := "Codigo"
oSheet:Cells( 1, 2 ):Value := "Nome"

oExcel:Sheets:Add()
oSheet := oExcel:Get( "ActiveSheet" )
oSheet:Name := "Aba 2"

oSheet:Cells( 1, 1 ):Value := "Data"
oSheet:Cells( 1, 2 ):Value := "Valor"

oSheet:Cells( 1, 1 ):Select()
oExcel:Visible := .T.

Return Nil


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
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Exportar para excel com Abas

Mensagempor marcos.gurupi » 23 Jan 2010 14:15

Obrigado Leonardo e Toledo. No exemplo do Toledo como eu poderia preencher as celulas e principalmente como eu consigo manipular o tamanho das celulas. Na verdade eu tenho um relatorio que dentro de um relatorio ele apresenta 5 paginas (que seria as abas) e cada uma com seu formato. Estou com uma certa dificuldade para manipular as celulas via xhb. Obrigado.
Marcos Roberto.
Marcos Roberto
NetService Software
marcos.gurupi
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 930
Data de registro: 06 Jul 2004 11:53
Cidade/Estado: Gurupi-TO
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Re: Exportar para excel com Abas

Mensagempor Toledo » 23 Jan 2010 19:58

marcos.gurupi escreveu:No exemplo do Toledo como eu poderia preencher as celulas e principalmente como eu consigo manipular o tamanho das celulas.


Preencher as células: Cells(linha,coluna):Value
oSheet:Cells( 2, 1 ):Value := "Nº"
oSheet:Cells( 2, 2 ):Value := " N O M E   D O   P A I"
oSheet:Cells( 2, 3 ):Value := " N O M E   D O   A L U N O"
oSheet:Cells( 2, 4 ):Value := "Ano"
oSheet:Cells( 2, 5 ):Value := "Mensalidade"
oSheet:Cells( 2, 6 ):Value := "Apostila"
oSheet:Cells( 2, 7 ):Value := "Xerox"
oSheet:Cells( 2, 8 ):Value := "Uniforme"
oSheet:Cells( 2, 9 ):Value := "R.O."
oSheet:Cells( 2, 10 ):Value := "Total"


Tamanho das colunas:
oSheet:Columns(1):ColumnWidth := 3.86
oSheet:Columns(2):ColumnWidth := 40
oSheet:Columns(3):ColumnWidth := 40
oSheet:Columns(4):ColumnWidth := 7
oSheet:Columns(5):ColumnWidth := 6.43


Tamanho da letra e Negrito:
oSheet:Cells( 1, 1 ):Font:Size := 14
oSheet:Cells( 1, 1 ):Font:Bold := .T.
oSheet:Cells( 2, 1 ):Font:Size := 10


Alinhamento das células:
oSheet:Cells( 1, 1 ):HorizontalAlignment:= -4108 //Centro
oSheet:Cells( 1, 2 ):HorizontalAlignment:= -4131 //Esquerda
oSheet:Cells( 1, 3 ):HorizontalAlignment:= -4152 //Direita
oSheet:Range("A2:M2"):HorizontalAlignment:= -4131 //Esquerda de A2 até M2


Mesclar células:
oSheet:Range("A1:M1"):Merge()


Escolher fonte de letra:
oSheet:Cells:Font:Name := "Times New Roman"
oSheet:Cells:Font:Size := 9


Formatar célula:
 oSheet:Cells( 1, 5 ):Set( "NumberFormat", "#.##0,00" )


Acho que não esqueci nada!

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
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Exportar para excel com Abas

Mensagempor marcos.gurupi » 23 Jan 2010 23:26

Esplendido, Espetacular resumindo. Obrigado!

NOTA: Teria como colocar cor?

Marcos Roberto.
Marcos Roberto
NetService Software
marcos.gurupi
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 930
Data de registro: 06 Jul 2004 11:53
Cidade/Estado: Gurupi-TO
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Re: Exportar para excel com Abas

Mensagempor Toledo » 24 Jan 2010 09:53

Marcos, segue um exemplo:

Cor da letra:
oSheet:Cells( 1, 1 ):Font:ColorIndex := 3


Cor de Preenchimento:
oSheet:Cells( 1, 2 ):Interior:ColorIndex := 7


Tabela de cores básicas:
Preto = 1
Branco = 2
Azul = 5
Azul Claro = 41
Azul Escuro = 11
Verde = 10
Vermelho = 3
Amarelo = 6
Marron = 53
Violeta = 13
Laranja = 46
Rosa = 7


Colocar Bordas:
oSheet:Range("A2:M10"):Borders(1):LineStyle:= 1
oSheet:Range("A2:M10"):Borders(2):LineStyle:= 1
oSheet:Range("A2:M10"):Borders(3):LineStyle:= 1
oSheet:Range("A2:M10"):Borders(4):LineStyle:= 1


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
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Exportar para excel com Abas

Mensagempor gvc » 24 Jan 2010 11:46

E só agora ele libera a informação pra gente. (eh.eh.eh.)

Eu estava precisando saber como fazer isso tb.
Preciso gerar as planilhas para o funcionário poder fazer as pesquisas dele.

Obrigado Toledo.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar de usuário

gvc
Colaborador

Colaborador
 
Mensagens: 1269
Data de registro: 23 Ago 2005 10:57
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Exportar para excel com Abas

Mensagempor gvc » 02 Fev 2010 23:52

Só uma pergunta bem simples: Tem alguma documentação com as instruções disso???
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar de usuário

gvc
Colaborador

Colaborador
 
Mensagens: 1269
Data de registro: 23 Ago 2005 10:57
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Exportar para excel com Abas

Mensagempor Toledo » 03 Fev 2010 10:00

Olá gvc, eu não tenho nenhuma documentação, mas aqui quando preciso de algo novo eu to fazendo o seguinte:

1 - Entro no Excel e abro um arquivo novo.
2 - Depois escolho as opções: Ferramentas / Macro / Gravar nova macro
3 - No nome da macro eu sempre coloco TESTE (pois depois eu acabo nunca salvando a macro e nem o arquivo XLS) e clico no botão Ok.
4 - Depois tudo o que eu fizer no excel, será gravado nesta macro.
5 - Quando eu terminar, mando parar a gravação da macro.
6 - Ai é só entrar em: Ferramentas / Macro / Macros... (Alt+F8), selecione a macro que você gravou (TESTE no caso) e clico no botão Editar.

Ai vai aparecer o código de tudo que você fez durante a gravação da macro.

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
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Exportar para excel com Abas

Mensagempor Luciano Bonfim » 29 Abr 2010 11:02

Caros,

para exportar de um DBF para excel eu copia campo por campo do meu DBF e vou colocando na XLS, só que quando meu arquivo DBF está muito grande esta operação está ficando demorada demais, existe alguma forma mais rápida de copiar essas informações, talvez linha a linha em vez de campo a campo?

Segue o meu código:

function trataCamposExcel
local x,mcampo
for x=1 to len(v_est)
   mcampo=v_est[x,1]
   do case
   case v_est[x,2] == "C"     
      cCell := "'"+alltrim(&mcampo)
   case v_est[x,2] == "N"
      cCell := &mcampo
   case v_est[x,2] == "L"
      cCell := if (&mcampo, "Sim", "Näo")
   case v_est[x,2] == "D"
      cCell := &mcampo
   otherwise
      cCell := "error"
   endcase
   oSheet:Cells( linha, x ):Value = cCell
next
return(nil)
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Exportar para excel com Abas

Mensagempor Luciano Bonfim » 29 Abr 2010 16:31

consegui resolver copiando linha a linha assim: jogo as elulas para um array e depois copio o array todo para a linha do xls

aadd(aRecord,cCell)
next

oSheet:Range(oSheet:Cells(linha,1),oSheet:Cells(linha,len(v_est))):Value := aRecord
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Exportar para excel com Abas

Mensagempor pauloa1 » 11 Dez 2010 16:11

Olá Toledo!

Show de bola seus exemplos.

vc consegue proteger a planilha gerada?

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Esse código deu ao fazer a sua dica, através da macro, mas não consegui colocar no sistema.

Na verdade eu gostaria que fosse assim.

Quero gerar uma planilha, e que a mesma seja protegida com ou sem senha, "apenas visualização", mas o usuário podendo alterar os dados de apenas uma coluna no caso a "G".

No caso dessa coluna "G" deixa mudar apenas os dados, não alterar configurações dele, tipo "tamanho, fonte etc..."

Depois eu faço uma rotina de importação dessa coluna para o meu sistema.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Re: Exportar para excel com Abas

Mensagempor Toledo » 13 Dez 2010 13:30

Paulo, como proteger parcialmente uma planilha eu não sei, mas para proteger a planilha toda basta usar o comando:

oSheet:Protect("sua_senha")


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
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: Exportar para excel com Abas

Mensagempor pauloa1 » 13 Dez 2010 17:37

Olá Toledo!

Obrigado pela dica, mas essa eu já tinha testado, da o seguinte erro ao executar.

Error 1547476: CELLS/0 S_OK: _VALUE Arguments: ([ 1] =Type: C Val: Codigo)

vc sabe como faço para mandar a celula calculada exemplo: =SOMA(D6:E6) ?

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro