Olha... trabalhar com a API do OO (OpenOffice) não é a coisa mais divertida que existe. Já precisei há algum tempo, gostei mas sinceramente achei trabalhoso. E há uma quantidade desértica de referência em português (e muito menos em Delphi) sobre a API. Um bom artigo de referência saiu esse mês (Jul/2009 - ed. 65) na ActiveDelphi. Recomendo fortemente sua leitura.
Para a solução do problema do colega, uma parte dela está implementada aqui [1] e uma versão semelhante e explicada está na revista ActiveDelphi deste mês (Jul/2009 - ed. 65). Só não há informação sobre mesclagem e bordas o que pode ser desenvolvido pesquisando o site/portal dedicado a API do OO em [2]. Alerto que todos os exemplos do portal são em Java e C++ e no fórum dedicado à API-OO com sorte encontra-se algo em Delphi. Os endereços [3], [4] e [5] são pontos que abordam o assunto, com as interfaces que devem ser manipuladas. Para entender como transpor o que está descrito nesses endereços (em inglês, com exemplos em Java e/ou C++) para o Delphi (ObjectPascal / Delphi Language) recomendo analisar o proposto em [1] e se possível, o artigo citado da revista ActiveDelphi (Jul./2009 ed. 65). Com isso creio que seja possível ter/desenvolver exatamente o que você necessita. Referências: (consultadas e disponíveis em 03.08.2009) [1] - Delphi: Interact with Calc docs from OpenOffice or Excel: http://www.oooforum.org/forum/viewtopic.phtml?t=8878 [2] - The OpenOffice.org API Project: http://api.openoffice.org/ [3] SpreadSheet Documents - OpenOffice.org Wiki: http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Spreadsheet_Documents [4] SpreadSheet Services - Overview - OpenOffice.org Wiki: http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Spreadsheet_Services_-_Overview [5] Cell Ranges and Cells Container - OpenOffice.org Wiki: http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Cell_Ranges_and_Cells_Container Atenciosamente, Ricardo Cardoso. 1) Evite escrever suas mensagens usando somente LETRAS MAIÚSCULAS. 2) Revise o texto de sua mensagem. Uma mensagem bem escrita é melhor compreendida. 3) Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! --- Em seg, 3/8/09, fabio giro <fabio_g...@yahoo.com.br> escreveu: Você já deu uma pesquisada em: www.devmedia. com.br , www.linhadecodigo. com.br , www.activedelphi. com.br , www.delphi.eti. br ? --- Em seg, 3/8/09, Paulo Pontes <pontespaulo@ gmail.com> escreveu: De: Paulo Pontes <pontespaulo@ gmail.com> Assunto: Re: [delphi-br] Delphi X OpenOffice Para: delphi...@yahoogrup os.com.br Data: Segunda-feira, 3 de Agosto de 2009, 11:28 Fábio, obrigado pela dica. Mas meu problema maior é com o OpenOffice, para o Excel fiz como vc citou mesmo. Mas a API dos dois é diferente, não possui as mesmas funções. Valeu! 2009/8/3 fabio giro <fabio_giro@ yahoo. com.br> > > > Adapte as suas necessidades > > // bordas da celula > excel.Workbooks[ 1].WorkSheets[ 1].range[ 'A4','E5' ].borders. linestyle := 1; > excel.Workbooks[ 1].WorkSheets[ 1].range[ 'A4','E5' ].borders. weight := 2; > > // mesclar celulas > excel.Workbooks[ 1].WorkSheets[ 1].Range[ 'A4:C4']. Merge; > excel.Workbooks[ 1].WorkSheets[ 1].Range[ 'D4:E4']. Merge; > > Para formatar células: > 1º você formata depois coloca o conteúdo, é + fácil. > 2º formate assim... > Range("C5"). Select > Selection.NumberFor mat = "0.00" > ou > Cells(11, 3).Select > Selection.NumberFor mat = "0.00" > ou > Range("C7"). Select > Selection.NumberFor mat = "m/d/yy" > Excel.Cells. Item[1,2] .Select; > Excel.Selection. numberformat := '00000000000000' ; {Formata como CNPJ} > Excel.Cells. Item[1,2] .Select; > Excel.Selection. numberformat := '@'; {Formata como texto} > Excel.Cells. Item[1,2] .Select; > Excel.Selection. numberformat := '#,##0.00'; {Formata 1,00} > a célula deve receber apenas o mês e não um a data?? > tente isso antes de passar o valor para a célula. > Range['A1', 'A1'].NumberFormat := '#'; > Range[StrCell, StrCell].Value2 := grd.Columns[ NumColuna] .Field.Value; > if grd.Columns[ NumColuna] .Field.DataType in [ftdate, ftDateTime] then > Range[StrCell, StrCell].NumberForm at := 'dd/mm/aaaa' ; > if grd.Columns[ NumColuna] .Field.DataType in [ftFloat, ftCurrency] then > Range[StrCell, StrCell].NumberForm at := '#.##0,00'; > > Dê uma pesquisada em www.delphi.eti. br > > Espero ter ajudado. > > --- Em seg, 3/8/09, Paulo Pontes <pontespaulo@ gmail.com<pontespau lo% > 40gmail.com> > > escreveu: > > De: Paulo Pontes <pontespaulo@ gmail.com <pontespaulo% 40gmail.com> > > Assunto: [delphi-br] Delphi X OpenOffice > Para: delphi...@yahoogrup os.com.br <delphi-br%40yahoog rupos.com. br> > Data: Segunda-feira, 3 de Agosto de 2009, 9:42 > > > > > Pessoal, bom dia! > > Alguém tem um exemplo aí de como formatar uma planilha do OpenOffice pelo > Delphi? Eu já implementei uma rotina aqui que faz a geração da planilha mas > não estou conseguindo formatá-la, principalmente: mesclar células e colocar > grade. > > Obrigado! > ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]