FWMsExcelEx
FWMsExcelEx():New()Gera planilhas XML compatíveis com Excel escrevendo os dados diretamente no arquivo e consumindo menos memória.
Visão geral
A classe FWMsExcelEx cria arquivos XML compatíveis com o Microsoft Excel 2003 e versões posteriores, além de aplicativos alternativos capazes de interpretar o formato. Como a escrita ocorre diretamente no arquivo, ela é indicada para volumes maiores de dados. A montagem deve seguir a ordem planilha, tabela, colunas, linhas, ativação e gravação do XML.
Sintaxe
FWMsExcelEx():New()Fluxo mínimo de criação
User Function ExExcelXML()
Local oExcel := FWMsExcelEx():New()
oExcel:AddWorkSheet("Clientes")
oExcel:AddTable("Clientes", "Cadastro de clientes")
oExcel:AddColumn("Clientes", "Cadastro de clientes", "Código", 1, 1, .F.)
oExcel:AddColumn("Clientes", "Cadastro de clientes", "Nome", 1, 1, .F.)
oExcel:AddRow("Clientes", "Cadastro de clientes", {"000001", "Cliente exemplo"})
oExcel:Activate()
oExcel:GetXMLFile("clientes.xml")
ReturnCria uma planilha, adiciona uma tabela com duas colunas e uma linha e grava o arquivo clientes.xml.
Formatação aplicada à próxima linha
oExcel:SetCelFont("Arial")
oExcel:SetCelSizeFont(10)
oExcel:SetCelBold(.T.)
oExcel:SetCelFrColor("#FFFFFF")
oExcel:SetCelBgColor("#003366")
oExcel:AddRow("Clientes", "Cadastro de clientes", ;
{"000002", "Outro cliente"}, {1, 2})O estilo configurado é aplicado às células indicadas no quarto argumento de AddRow(). Configure-o imediatamente antes da linha correspondente.
Alinhamento, altura e codificação
oExcel:SetUTF8Encode(.T.)
oExcel:SetTitleHAlign(2)
oExcel:SetHeaderHAlign(2)
oExcel:SetTitleVAlign(2)
oExcel:SetHeaderVAlign(2)
oExcel:SetLineVAlign(3)
oExcel:SetTitleHeight(24)
oExcel:SetHeadHeight(20)
oExcel:SetLineHeight(18)Configura a codificação, os alinhamentos horizontal e vertical e as alturas das linhas de título, cabeçalho e dados.
Principais métodos por etapa
// Ciclo de vida
New() // ClassName() // Activate() // DeActivate()
// Estrutura e dados
AddWorkSheet() // AddTable() // AddColumn() // AddRow()
IsWorkSheet() // GetXMLFile()
// Estilos gerais e específicos
SetFont() // SetFontSize() // SetBold()
SetItalic() // SetUnderLine() // SetFrGeneralColor()
SetBgGeneralColor()
SetTitleFont() // SetHeaderFont() // SetLineFont()
Set2LineFont() // SetCelFont() // SetCelBold()A classe separa o ciclo de vida, a estrutura da planilha, a inclusão dos dados e a configuração visual. As famílias Title, Header, Line, 2Line e Cel seguem padrões semelhantes.
- Use uma instância para construir o arquivo de maneira sequencial: AddWorkSheet(), AddTable(), AddColumn(), AddRow(), Activate() e GetXMLFile().
- Cada worksheet aceita uma tabela segundo a documentação consultada.
- Os métodos SetFont*, SetTitle*, SetHeader*, SetLine*, Set2Line* e SetCel* configuram fonte, tamanho, negrito, itálico, sublinhado e cores.
- SetUTF8Encode() controla a conversão dos textos para UTF-8; por padrão, os conteúdos enviados são codificados.
- Para novos projetos que precisem do formato XLSX nativo, compare esta classe com FWMsExcelXlsx e FwPrinterXlsx antes de decidir.
- A escrita é progressiva: depois de iniciar outra planilha, não volte para escrever na anterior. A quebra da sequência pode gerar um arquivo inconsistente que não será aberto.
- As configurações de estilo precisam ser definidas antes do AddRow() ao qual serão aplicadas.
- Os códigos numéricos de AddColumn() representam alinhamento (1 esquerda, 2 centro, 3 direita) e formato (1 geral, 2 número, 3 monetário, 4 data e hora).
- Confirme a disponibilidade de parâmetros e métodos conforme a versão da LIB; lPrintHead, por exemplo, é documentado a partir da LIB 20220613.
- A documentação histórica apresenta algumas descrições e grafias inconsistentes; as assinaturas devem ser validadas no ambiente utilizado.
