Olá pessoal! Busquei em alguns tópicos aqui no site alguns exemplos de como abrir uma planilha com libre office mas não consegui resolver. Estou exportando primeiro para um .csv e depois tentado abrir esse arquivo com o LibreOffice Mas aparece um erro. Erro --------------------------- Ocorreu erro durante acesso a componente da propriedade/metodo: storeToURL. com.sun.star.io.IOException: SfxBaseModel::impl_store <file://c:/temp/testdoc.csv> failed: 0x81a(Error Area:Io Classarameter Code:26) at C:/cygwin64/home/buildslave/source/libo-core/sfx2/source/doc/sfxbasemodel.cxx:3272 at C:/cygwin64/home/buildslave/source/libo-core/sfx2/source/doc/sfxbasemodel.cxx:1822 Error code: 0x80020009 pi-gera-libreOffice c:\temp\p88369_converte_libre.cmp (5890) Código: def var BrOffice as com-handle. def var Desktop as com-handle. def var Planilha as com-handle. def var Documento as com-handle. def var cc as raw. run pi-gera-csv. run pi-gera-libreOffice. /*--------------------------------------------------------------------------------*/ procedure pi-gera-csv. output to value('c:/temp/testdoc.csv') no-convert. put unformatted 'a' ';' 'b' ';' 'c' ';' 'd' ';' 'e' ';' 'f' ';' 'g' ';' 'h' ';'. output close. end procedure. /*--------------------------------------------------------------------------------*/ procedure pi-gera-libreOffice: create "com.sun.star.ServiceManager" BrOffice. Desktop = BrOffice:createinstance("com.sun.star.frame.Desktop"). /* Inicia um documento em branco */ Documento = Desktop:loadComponentFromURL("private:factory/scalc","_blank",0,cc). /* Remove Planilhas padrao */ do while Documento:getSheets:getCount > 1: Planilha = Documento:getSheets:getByIndex(1). Documento:getSheets:removeByName( Planilha:name ). end. assign Planilha = Documento:getSheets:getByIndex(0). Planilha:name = "Teste". /* Definindo formato numerico para coluna */ Planilha:getColumns:getByIndex(1):setPropertyValue("NumberFormat", 1). /* Ajuste automatico da largura das colunas */ Planilha:getColumns:OptimalWidth = yes. Documento:storeToURL('file://c:/temp/testdoc.csv', CC). /* Finaliza BrOffice Documento:dispose(). Desktop:terminate(). */ release object Documento. release object Planilha. release object Desktop. release object BrOffice. end procedure.
Segundo o ChatGPT o método correto para abrir um documento é LoadComponentFromURL É assim que funciona no c#, e como bibliotecas funcionam igual em diferentes linguagens, tente usar. Clique pra ver a resposta completa: