Descrição
Fornece métodos para criação de arquivo Xlsx. Fornece métodos com assinatura similar a FwMsExcel de forma que seja possível a substituição com o mínimo de esforço. 

Observação
A classe FWMsExcelXlsx utiliza a memória física do computador para a criação do arquivo, armazenando os valores para, ao final do processamento, criar o arquivo. Neste método de criação existe maior variação de uso dos dados antes de sua criação, mas com efeitos de maior consumo de memória.
Para uma implementação com baixo consumo de memória, vide a utilização do método SetWriteinDB

Métodos



Esta classe só está disponível em binários 17.3.0.0 e superiores

O recurso depende primariamente da printer.exe ter a versão igual ou superior a 2.1.0.  Caso seja utilizada versão anterior será lançada uma exceção


Exceção
THREAD ERROR ([92092], izac.ciszevski, SPON019400005)   30/09/2020 16:22:46
erro no parâmetro FwPrinterXlsx: Versão da printer.exe não suporta a geração de arquivos .xlsx. on FWPRINTERXLSX:ACTIVATE(FWPRINTERXLSX.TLPP) 25/09/2020 18:06:04 line : 140

Classe disponível na lib com label igual ou superior a 20201009.


FWMsExcel

Exemplo
User Function TESTE()

oExcel := FwMsExcelXlsx():New()

lRet := oExcel:IsWorkSheet("WorkSheet1")
oExcel:AddworkSheet("WorkSheet1")

lRet := oExcel:IsWorkSheet("WorkSheet1")
oExcel:AddTable ("WorkSheet1","Table1")
oExcel:AddColumn("WorkSheet1","Table1","Col1",1,1,.F., "999.9")
oExcel:AddColumn("WorkSheet1","Table1","Col2",2,2,.F., "999.99")
oExcel:AddColumn("WorkSheet1","Table1","Col3",3,3,.F., "999.999")
oExcel:AddColumn("WorkSheet1","Table1","Col4",1,1,.T., "999.9999")
oExcel:AddColumn("WorkSheet1","Table1","Col5",1,1,.T., "999.99999")
oExcel:AddColumn("WorkSheet1","Table1","Col6",1,1,.T., "999")

oExcel:AddRow("WorkSheet1","Table1",{11.1,12.11,13.111,14.1111, 14.12345, 12.35})
oExcel:AddRow("WorkSheet1","Table1",{21,22,23,24})
oExcel:AddRow("WorkSheet1","Table1",{31,32,33,34})
oExcel:AddRow("WorkSheet1","Table1",{41,42,43,44})

oExcel:SetFont("arial")
oExcel:SetFontSize(20)
oExcel:SetItalic(.T.)
oExcel:SetBold(.T.)
oExcel:SetUnderline(.T.)

oExcel:AddworkSheet("WorkSheet2")
oExcel:AddTable("WorkSheet2","Table1")
oExcel:AddColumn("WorkSheet2","Table1","Col1",1, 1)
oExcel:AddColumn("WorkSheet2","Table1","Col2",2, 2)
oExcel:AddColumn("WorkSheet2","Table1","Col3",3, 3)
oExcel:AddColumn("WorkSheet2","Table1","Col4",1, 4)
oExcel:AddColumn("WorkSheet2","Table1","Col5",1)

oExcel:AddRow("WorkSheet2","Table1",{"11",12,13,stod("20121212"), .F.})
oExcel:AddRow("WorkSheet2","Table1",{"21",22,23,stod("20121212"), .T.})
oExcel:AddRow("WorkSheet2","Table1",{"31",32,33,stod("20121212"), .F.})
oExcel:AddRow("WorkSheet2","Table1",{"41",42,43,stod("20121212"), .T.})
oExcel:AddRow("WorkSheet2","Table1",{"51",52,53,stod("20121212"), .F.})

oExcel:Activate()

oExcel:GetXMLFile("TESTE.xlsx")

oExcel:DeActivate()

Return


New

Sintaxe
FwMsExcelXlsx():New()-> NIL

Descrição
Método construtor da classe


ClassName

Sintaxe
FwMsExcelXlsx():ClassName()-> cRet

Descrição
Fornece o nome da classe


Activate

Sintaxe
FwMsExcelXlsx():Activate()-> lRet

Descrição
Habilita o uso da classe, indicando que esta configurada e pronto para uso


DeActivate

Sintaxe
FwMsExcelXlsx():DeActivate()-> lRet

Descrição
Desabilita o uso da classe e realiza a limpeza do objeto.


AddWorkSheet

Sintaxe
FwMsExcelXlsx():AddWorkSheet(< cWorkSheet >)-> lRet

Descrição
Adiciona uma Worksheet ( Planilha )

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cWorkSheetCaracteresNome da planilha que será adicionada


X


 Obs. O limite de caracteres no nome é de 30, caso seja utilizada uma string maior, ela será quebrada para ficar dentro do limite.


AddTable

Sintaxe
FwMsExcelXlsx():AddTable(< cWorkSheet >, < cTable >, [lPrintHead])-> NIL

Descrição
Adiciona uma tabela na Worksheet. Uma WorkSheet pode ter apenas uma tabela

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cWorkSheetCaracteresNome da planilha
X

cTableCaracteresTitulo da tabela que será adicionada
X

lPrintHeadLogicoDetermina se imprime ou não o cabeçalho da tabela na primeira linha da tabela.
(disponível a parti da lib 20220613)
.T.


 


AddColumn

Sintaxe
FwMsExcelXlsx():AddColumn(< cWorkSheet >, < cTable >, < cColumn >, [< nAlign >], [< nFormat >], [< lTotal >], [ < cPicture >])-> lRet

Descrição
Adiciona uma coluna a tabela de uma Worksheet.

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cWorkSheetCaracteresNome da planilha
X

cTableCaracteresNome da planilha
X

cColumnCaracteresTitulo da tabela que será adicionada
X

nAlignNuméricoAlinhamento da coluna ( 1-Left,2-Center,3-Right )1


nFormatNuméricoCodigo de formatação ( 1-General,2-Number,3-Monetário,4-DateTime )1


lTotalLógicoIndica se a coluna deve ser totalizada.F.


cPictureCaracteresMascara de picture a ser aplicada. Somente para campos numéricos""


 


AddRow

Sintaxe
FwMsExcelXlsx():AddRow(< cWorkSheet >, < cTable >, < aRow >)-> lRet

Descrição
Adiciona uma linha a tabela de uma Worksheet.

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cWorkSheetCaracteresNome da planilha
X

cTableCaracteresNome da planilha
X

aRowArray of RecordsArray com as informações da linha da linha
X


 


GetXMLFile

Sintaxe
FwMsExcelXlsx():GetXMLFile(< cFile >)-> lRet

Descrição
Cria um arquivo no formato Xlsx. Nome mantido por compatibilidade.

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cFileCaracteresNome do arquivo fisico
X


 


IsWorkSheet

Sintaxe
FwMsExcelXlsx():IsWorkSheet(< cWorkSheet >)-> lRet

Descrição
Verifica se um nome já foi utilizado para definir uma WorkSheet

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cWorkSheetCaracteresNome
X


 


SetFontSize

Sintaxe
FwMsExcelXlsx():SetFontSize(< nFontSize >)-> NIL

Descrição
Define o tamanho para a fonte para todos os estilos da planilha

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

nFontSizeNuméricoTamanho
X


 


SetFont

Sintaxe
FwMsExcelXlsx():SetFont(< cFont >)-> NIL

Descrição
Define a fonte que será utilizada para todos os estilos da planilha. Caso fonte não seja encontrada será usada Calibri como fonte.

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

cFontCaracteresNome da Fonte
X


 


SetItalic

Sintaxe
FwMsExcelXlsx():SetItalic(< lItalic >)-> NIL

Descrição
Define se a fonte terá a configuração "Italico" para todos os estilos da planilha

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

lItalicLógico.T. indica que sim
X


 


SetBold

Sintaxe
FwMsExcelXlsx():SetBold(< lBold >)-> NIL

Descrição
Define se a fonte terá a configuração "Negrito" para todos os estilos da planilha

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

lBoldLógico.T. indica que sim
X


 


SetUnderLine

Sintaxe
FwMsExcelXlsx():SetUnderLine(< lUnderline >)-> NIL

Descrição
Define se a fonte terá a configuração "Sublinhado" para todos os estilos da planilha

Parâmetros



NomeTipoDescriçãoDefaultObrigatórioReferência

lUnderlineLógico.T. indica que sim
X


 

SetWriteinFile


Sintaxe
FwMsExcelXlsx():SetWriteinFile(< lWriteinFile >)-> NIL

Descrição
Informa se a escrita será realizada diretamente em arquivo, por padrão essa opção está desativada.
Caso essa opção seja utilizada a geração da planilha não mais irá consumir memória ram do servidor
Cada addRow no object já efetuará o flush dos dados no arquivo que está sendo gerado.
Isso torna a geração do arquivo procedural, de forma que o addrow sempre irá adicionar linhas na ultima tabela adicionada.
não será possível adicionar linhas em uma tabela que tenha sido criada antes da ultima tabela.
Parâmetros


NomeTipoDescriçãoDefaultObrigatórioReferência

lWriteinFileLógico.T. indica que irá salvar direto no arquivo
X

obs. Método disponível a partir da lib 20220725