Olá meus amigos. A seguir, informações para exportarmos planilha do Excel de uma maneira mais profissional.
O objeto FWMsExcel fornece métodos para criação de arquivo XML compatível com as versões do MS Excel 2003, superiores e alternativos. Com ele é possível criar abas, tabelas, e colunas. Manipular cores e fontes inclusive.
Segue um exemplo muito simples de exportação para planilha do Excel utilizando o objeto FWMsExcel:
Local cArquivo := "RELAT_FINANC.XLS" Local oExcelApp := Nil Local cPath := "C:\WINDOWS\TEMP\" Local nTotal := 0 Local oExcel Local oExcelApp aColunas := {} aLocais := {} oBrush1 := TBrush():New(, RGB(193,205,205)) // Verifica se o Excel está instalado na máquina If !ApOleClient("MSExcel") MsgAlert("Microsoft Excel não instalado!") Return EndIf oExcel := FWMSExcel():New() cAba := "Contas a Receber" cTabela := "Titulos" // Criação de nova aba oExcel:AddworkSheet(cAba) // Criação de tabela oExcel:AddTable (cAba,cTabela) // Criação de colunas oExcel:AddColumn(cAba,cTabela,"Dt.Emissao" ,1,4,.F.) oExcel:AddColumn(cAba,cTabela,"Prefixo" ,2,1,.F.) oExcel:AddColumn(cAba,cTabela,"Titulo" ,2,1,.F.) oExcel:AddColumn(cAba,cTabela,"Parcela" ,2,1,.F.) oExcel:AddColumn(cAba,cTabela,"Valor" ,3,2,.T.) While !SE1->(Eof()) // Criação de Linhas oExcel:AddRow(cAba,cTabela, { DtoC(SE1->E1_EMISSAO) ,; SE1->PREFIXO ,; SE1->TITULO ,; SE1->PARCELA ,; SE1->E1_VALOR }) SE1->(dbSkip()) End If !Empty(oExcel:aWorkSheet) oExcel:Activate() oExcel:GetXMLFile(cArquivo) CpyS2T("\SYSTEM\"+cArquivo, cPath) oExcelApp := MsExcel():New() oExcelApp:WorkBooks:Open(cPath+cArquivo) // Abre a planilha oExcelApp:SetVisible(.T.) EndIf
Veja mais sobre o objeto FWMsExcel no TDN:
http://tdn.totvs.com/display/public/mp/FWMsExcel
Ótimo post.
Ajudou muito.