Neste artigo vamos mostrar como criar uma Planilha do Excel usando Progress 4GL.
1- Comandos para criação do arquivo
A primeira coisa que temos que fazer é criar a planilha:
CREATE "Excel.Application" vchExcel.
Dependendo da situação, podemos precisar que o arquivo seja mostrado na tela enquanto é gerado, para isso alteramos a propriedade abaixo:
vchExcel:VISIBLE = [TRUE/FALSE]
Em muitos casos precisamos de mais de uma aba para organizar melhor as informações. Isso pode ser feito pelo comando:
vchWorkBook = vchExcel:WorkBooks:ADD()
Quando criamos mais de uma aba, e precisamos mudar de aba durante o programa usamos o comando:
vchWorkSheet = vchExcel:Sheets:ITEM(1)
2- Manipulando Células
Para Atribuirmos um valor a célula fazemos assim:
vchWorkSheet:Range(c-coluna+c-linha):VALUE = 123
vchWorkSheet:Range(c-coluna+c-linha):VALUE = "Teste"
Podemos também formatar uma célula para que seu conteúdo apareça em negrito:
vchWorkSheet:Range("A1"):FONT:Bold = [TRUE/FALSE]
Para mesclar duas Células:
vchWorkSheet:Range("A1:I1"):Merge
Alinhar o conteúdo da célula para a esquerda:
vchWorkSheet:Range("A1"):HorizontalAlignment = 3
Alinhar o conteúdo da célula para a direita:
vchWorkSheet:Range("A1"):HorizontalAlignment = 4
Alinhar o conteúdo da célula para o topo:
vchWorkSheet:Range("A1"):VerticalAlignment = 1
Auto size column
vchWorkSheet:Range("A1"):EntireColumn:AutoFit
Auto size row
vchWorkSheet:Range("A1"):EntireRow:AutoFit
Alterar o tamanho da coluna:
vchWorkSheet:Range("A1"):ColumnWidth = 90
Para formatar números:
Você pode mudar o numero de casas decimais adicionando mais 0’s, usando a vírgula ou não, e adicionar mais #’s para um numero muito grande.
vchWorkSheet:Range("A1"):NumberFormat = "###,###,##0.00;[Red]-###,###,##0.00"
3- Salvando o Arquivo e liberando o processo
Para Salvar como a Planilha usa-se o comando:
Sempre usar essas sete vírgulas!
vchWorkBook:SaveAs("c:\tmp\ttst.xls",,,,,,,)
E pra terminar, para fechar a planilha usamos:
RELEASE OBJECT chExcelApplication.
RELEASE OBJECT chWorkbook.
RELEASE OBJECT chWorksheet.