FwPrinterXlsx
FwPrinterXlsx():New([lDelBase])Gera XLSX por comandos intermediários enviados à printer.exe.
Visão geral
Requer printer.exe 2.1.0 ou superior no cliente e servidor, LIB 20201009 e release 12.1.23 ou superiores. Activate prepara o arquivo .rel; AddSheet cria a aba e SetText escreve a célula. toXlsx é documentado com retorno NIL: não tratar seu resultado como confirmação lógica. O exemplo prepara um bloco para um caminho de teste exclusivo fornecido pelo chamador; o bloco não é executado automaticamente. (Fontes: refs. 1–1.)
Sintaxe
FwPrinterXlsx():New([lDelBase])Métodos
ActivatePrepara arquivo base.o:Activate(cFile, [oFile])
AddSheetAdiciona aba obrigatória.o:AddSheet(cSheetName)
SetTextEscreve texto em célula.o:SetText(nRow,nCol,cValue)
toXlsxSolicita geração após os comandos.o:toXlsx() -> NIL
DeActivate / DestroyLibera elementos ativados e recursos.o:DeActivate() / o:Destroy()
Exemplo comentado
#Include "Protheus.ch"
User Function Ed447()
Local bGerar := {|cRel| XlsxEd(cRel)}
// O chamador deve fornecer caminho de teste novo e autorizado.
ConOut(ValType(bGerar))
Return Nil
Static Function XlsxEd(cRel)
Local oXlsx := FwPrinterXlsx():New()
Local lOk := .F.
If !File(cRel)
If oXlsx:Activate(cRel)
lOk := oXlsx:AddSheet("ED01")
If lOk
lOk := oXlsx:SetText(1,1,"Revisao")
EndIf
If lOk
oXlsx:toXlsx()
EndIf
oXlsx:DeActivate()
EndIf
EndIf
oXlsx:Destroy()
// lOk refere-se aos comandos, nao a validacao do XLSX final.
Return lOkExibe B e prepara a geração; ao chamar o bloco, validar o arquivo final separadamente. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Não reutilizar nomes concorrentes. File é uma checagem preliminar, não reserva atômica. GetStatusPrinter não comprova sucesso da geração.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.