Jump to content
Fivewin Brasil

Excel - Cabeçalho


Kleyton

Recommended Posts

Peguei esse exemplo aqui no fórun e adaptei a minha necessidade, preciso incluir no início umas três linhas de cabeçalho, alguém poderia me dar uma dica de como fazer, aliás, onde consigo material que fale sobre essas rotinas texcel?

Mesmo eu informando na variável aTitCol, a mesma não sai no arquivo gerado.

* 06/10/2008

Function ExcProp_()

local aSql:={}, cCmdSql

* links úteis : http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10595

* http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10593

* http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10015

* aqui no final deste arquivo tem um execelente exemplo de geração para excel.

cArqExcel:="C:\SISMOT\EXCEL\"+alltrim(LOTEAMEN->NOME_EMP)+".XLS"

aTitCol:={ "Proposta", "Quadra", "Lote", "Vlr Parcela", "Qtd Parcela", "Total" }

aTipoDado:={ "000000", "@", "000000", "0,00", "0,00", "0,00" }

aadd( aSql, { "PROPOSTA", "QUADRA", "LOTE", "VLR PARCELA", "QTD PARCELA", "VLR TOTAL" } )

select CLASSIF

set order to 1

go top

do while !eof()

SysReFresh()

aadd( aSql, { CLASSIF->PROPOSTA_, CLASSIF->QUADRA_, CLASSIF->LOTE_, CLASSIF->VLR_PARC_, CLASSIF->QTD_PARC_, transform(CLASSIF->TOTAL_,"@E 99,999,999.99") } )

skip

enddo

GeraExcel( cArqExcel, aTitCol, aSql, aTipoDado, .f. )

MsgInfo("Arquivo gerado em " + cArqExcel,"Atenção")

return nil

////////////////////////////DADOS DA FUNCAO////////////////////////////////////////////

// NOME : GeraArqExcel //

// SINTESE : Gerar arquivo XLS //

// PARAMETROS : <1> cNome do arquivo a ser gerado //

// <2> aVetor com os títulos das colunas //

// <3> aVetor bidimensional com os dados //

// <4> aVetor com os tipos de dados //

// [5] lEmite preview (default=.f.) //

// RETORNO : nada //

///////////////////////////////////////////////////////////////////////////////////////

function GeraExcel( cArqExcel, aTitCol, aDados, aTipoDado, lPreview )

local oExcel, oFolha

local x1, x2

oExcel := TOleauto():New( "Excel.Application" )

if Ole2TxtError()='S_OK'

oExcel:WorkBooks:Add()

oFolha := oExcel:Get("ActiveSheet")

oFolha:Cells:Font:Name := 'Arial'

oFolha:Cells:Font:Size := 10

for x1=1 to len( aTitCol )

// Títulos dos Cabeçalhos

oFolha:Cells(1,x1):Value := aTitCol[x1]

next

*x++

*x++

for x1=1 to len( aDados )

for x2=1 to len( aDados[x1] )

oFolha:Columns(x2):AutoFit()

oFolha:Cells(x1,x2):set( "NumberFormat", aTipoDado[x2] )

oFolha:Cells(x1,x2):Value := aDados[x1,x2]

next

next

if lPreview

// aqui mostra o relatorio direto no excel sem preview e nem importação

oExcel:Visible := .T.

endif

// Incluir a geração do arquivo

// oExcel:saveas( cArqExcel )

oFOlha:SaveAs( cArqExcel )

oExcel:WorkBooks:Close()

oExcel:Quit()

else

MsgInfo( 'Excel não está instalado nessa máquina!'+CRLF+'Impossível gerar planilha', 'ATENÇÃO')

endif

return .t.

Kleyton

xHarbour 99.5 Clipper5.2E+Clipper5.3b+Blink7+FW2.0d+Fwh 2.5 (xHarbour 0.99.3)

cleitonbala@bol.com.br

Link to comment
Share on other sites

Peguei esse exemplo aqui no fórun e adaptei a minha necessidade, preciso incluir no início umas três linhas de cabeçalho, alguém poderia me dar uma dica de como fazer, aliás, onde consigo material que fale sobre essas rotinas texcel?

Mesmo eu informando na variável aTitCol, a mesma não sai no arquivo gerado.

* 06/10/2008

Function ExcProp_()

local aSql:={}, cCmdSql

* links úteis : http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10595

* http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10593

* http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=10015

* aqui no final deste arquivo tem um execelente exemplo de geração para excel.

cArqExcel:="C:\SISMOT\EXCEL\"+alltrim(LOTEAMEN->NOME_EMP)+".XLS"

aTitCol:={ "Proposta", "Quadra", "Lote", "Vlr Parcela", "Qtd Parcela", "Total" }

aTipoDado:={ "000000", "@", "000000", "0,00", "0,00", "0,00" }

aadd( aSql, { "PROPOSTA", "QUADRA", "LOTE", "VLR PARCELA", "QTD PARCELA", "VLR TOTAL" } )

select CLASSIF

set order to 1

go top

do while !eof()

SysReFresh()

aadd( aSql, { CLASSIF->PROPOSTA_, CLASSIF->QUADRA_, CLASSIF->LOTE_, CLASSIF->VLR_PARC_, CLASSIF->QTD_PARC_, transform(CLASSIF->TOTAL_,"@E 99,999,999.99") } )

skip

enddo

GeraExcel( cArqExcel, aTitCol, aSql, aTipoDado, .f. )

MsgInfo("Arquivo gerado em " + cArqExcel,"Atenção")

return nil

////////////////////////////DADOS DA FUNCAO////////////////////////////////////////////

// NOME : GeraArqExcel //

// SINTESE : Gerar arquivo XLS //

// PARAMETROS : <1> cNome do arquivo a ser gerado //

// <2> aVetor com os títulos das colunas //

// <3> aVetor bidimensional com os dados //

// <4> aVetor com os tipos de dados //

// [5] lEmite preview (default=.f.) //

// RETORNO : nada //

///////////////////////////////////////////////////////////////////////////////////////

function GeraExcel( cArqExcel, aTitCol, aDados, aTipoDado, lPreview )

local oExcel, oFolha

local x1, x2

oExcel := TOleauto():New( "Excel.Application" )

if Ole2TxtError()='S_OK'

oExcel:WorkBooks:Add()

oFolha := oExcel:Get("ActiveSheet")

oFolha:Cells:Font:Name := 'Arial'

oFolha:Cells:Font:Size := 10

for x1=1 to len( aTitCol )

// Títulos dos Cabeçalhos

oFolha:Cells(1,x1):Value := aTitCol[x1]

next

*x++

*x++

for x1=1 to len( aDados )

for x2=1 to len( aDados[x1] )

oFolha:Columns(x2):AutoFit()

oFolha:Cells(x1,x2):set( "NumberFormat", aTipoDado[x2] )

oFolha:Cells(x1,x2):Value := aDados[x1,x2]

next

next

if lPreview

// aqui mostra o relatorio direto no excel sem preview e nem importação

oExcel:Visible := .T.

endif

// Incluir a geração do arquivo

// oExcel:saveas( cArqExcel )

oFOlha:SaveAs( cArqExcel )

oExcel:WorkBooks:Close()

oExcel:Quit()

else

MsgInfo( 'Excel não está instalado nessa máquina!'+CRLF+'Impossível gerar planilha', 'ATENÇÃO')

endif

return .t.

Kleyton

xHarbour 99.5 Clipper5.2E+Clipper5.3b+Blink7+FW2.0d+Fwh 2.5 (xHarbour 0.99.3)

cleitonbala@bol.com.br

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...