Página 1 de 5
Exportar para excel com Abas
Enviado: 22 Jan 2010 14:30
por marcos.gurupi
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.
Re: Exportar para excel com Abas
Enviado: 22 Jan 2010 22:00
por sygecom
Marcos, como você mostra os relatórios do seu sistema ? dependendo de como você usa posso lhe ajudar postando alguns exemplos.
Re: Exportar para excel com Abas
Enviado: 23 Jan 2010 15:05
por Toledo
Marcos, dê uma olhada neste exemplo:
Código: Selecionar todos
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,
Re: Exportar para excel com Abas
Enviado: 23 Jan 2010 15:15
por marcos.gurupi
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.
Re: Exportar para excel com Abas
Enviado: 23 Jan 2010 20:58
por Toledo
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
Código: Selecionar todos
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:
Código: Selecionar todos
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:
Código: Selecionar todos
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:
Código: Selecionar todos
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:
Escolher fonte de letra:
Código: Selecionar todos
oSheet:Cells:Font:Name := "Times New Roman"
oSheet:Cells:Font:Size := 9
Formatar célula:
Acho que não esqueci nada!
Abraços,
Re: Exportar para excel com Abas
Enviado: 24 Jan 2010 00:26
por marcos.gurupi
Esplendido, Espetacular resumindo. Obrigado!
NOTA: Teria como colocar cor?
Marcos Roberto.
Re: Exportar para excel com Abas
Enviado: 24 Jan 2010 10:53
por Toledo
Marcos, segue um exemplo:
Cor da letra:
Cor de Preenchimento:
Tabela de cores básicas:
Código: Selecionar todos
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:
Código: Selecionar todos
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,
Re: Exportar para excel com Abas
Enviado: 24 Jan 2010 12:46
por gvc
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.
Re: Exportar para excel com Abas
Enviado: 03 Fev 2010 00:52
por gvc
Só uma pergunta bem simples: Tem alguma documentação com as instruções disso???
Re: Exportar para excel com Abas
Enviado: 03 Fev 2010 11:00
por Toledo
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,
Re: Exportar para excel com Abas
Enviado: 29 Abr 2010 11:02
por Luciano Bonfim
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:
Código: Selecionar todos
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)
Re: Exportar para excel com Abas
Enviado: 29 Abr 2010 16:31
por Luciano Bonfim
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
Re: Exportar para excel com Abas
Enviado: 11 Dez 2010 17:11
por pauloa1
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
Re: Exportar para excel com Abas
Enviado: 13 Dez 2010 14:30
por Toledo
Paulo, como proteger parcialmente uma planilha eu não sei, mas para proteger a planilha toda basta usar o comando:
Abraços,
Re: Exportar para excel com Abas
Enviado: 13 Dez 2010 18:37
por pauloa1
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