Salvar uma planilha excel em Harbour.
Enviado: 06 Jan 2022 19:27
Procurei muito e não achei o que queria nem no site e nem fora. Aqui no site achei alguns exemplos mas acredito que só funcione no xHarbour. Estou gerando uma planilha e no final queria salva-la direto sem nem mostrar ela aberta para o cliente.
Esta linha foi uma que achei oExcel:WorkBooks:SaveAs(cFilePath(GetModuleFileName(GetInstance()))+"Analitico.xls"), porém dá erro de compilação em várias funções.
Tentei gravando macro no excel que me ajudou a descobrir alguns recursos e perceber também que alguns não funcionam como formatar uma célula centralizada.
Alguém sabe ou tem algum exemplo de como salvar a planilha sem precisar do usuário?
Minha rotina ficou assim:
Esta linha foi uma que achei oExcel:WorkBooks:SaveAs(cFilePath(GetModuleFileName(GetInstance()))+"Analitico.xls"), porém dá erro de compilação em várias funções.
Tentei gravando macro no excel que me ajudou a descobrir alguns recursos e perceber também que alguns não funcionam como formatar uma célula centralizada.
Alguém sabe ou tem algum exemplo de como salvar a planilha sem precisar do usuário?
Minha rotina ficou assim:
Código: Selecionar todos
sele 9
count to _tam_arq
oExcel := TOleauto():new("Excel.Application")
* oWorkBook := oExcel:WorkBooks:Open( "d:\sistemas\hb\726ms\bancos\Analitico.xlsx" )
oExcel:WorkBooks:Add()
oFolha := oExcel:ActiveSheet()
oFolha:Name := "Analitico"
oExcel:Visible := .f.
oFolha:Cells( 1, 1 ):Value := 'PLACA'
oFolha:Cells( 1, 2 ):Value := 'DATA'
oFolha:Cells( 1, 3 ):Value := 'ENTRADA'
oFolha:Cells( 1, 4 ):Value := 'SAIDA'
oFolha:Cells( 1, 5 ):Value := 'AUTOMOVEL'
oFolha:Cells( 1, 1 ):ColumnWidth := 12
oFolha:Cells( 1, 2 ):ColumnWidth := 12
oFolha:Cells( 1, 3 ):ColumnWidth := 12
oFolha:Cells( 1, 4 ):ColumnWidth := 12
oFolha:Cells( 1, 5 ):ColumnWidth := 25
* oFolha:Cells( 1, 2 ):HorizontalAlignment := 7 // não funciona com nenhum parametro
* oFolha:Cells( 1, 2 ):NumberFormat := "[$-F800]dddd, mmmm dd, yyyy" // nao funciona
* oFolha:Cells( 1, 3 ):NumberFormat := "[$-F400]h:mm:ss AM/PM" // funciona
* oFolha:Cells( 1, 4 ):NumberFormat := "[$-F400]h:mm:ss AM/PM"
for x := 1 to _tam_arq
oFolha:Cells( x, 1 ):font:Size := 12
oFolha:Cells( x, 2 ):font:Size := 12
oFolha:Cells( x, 3 ):font:Size := 12
oFolha:Cells( x, 4 ):font:Size := 12
oFolha:Cells( x, 5 ):font:Size := 12
next
oFolha:Columns( 1 ):Font:Bold := .T.
* oFolha:Columns( 2 ):Font:Color := (255, 0, 255) // Vermelho funciona
_lin := 2
do while ! eof()
oFolha:Cells( _lin, 1 ):Value := pla_aut
oFolha:Cells( _lin, 2 ):Value := dat_mov
oFolha:Cells( _lin, 3 ):Value := hor_ent
oFolha:Cells( _lin, 4 ):Value := hor_sai
oFolha:Cells( _lin, 5 ):Value := nom_aut
_lin ++
skip
enddo
oExcel:Visible := .t.
* oExcel:WorkBooks:SaveAs(cFilePath(GetModuleFileName(GetInstance()))+"Analitico.xls")
oWorkBook:close()
oExcel:Quit()