Eu estou desenvolvendo uma macro para a organização em que trabalho, e eu
preciso criar uma folha na planilha com nome dinâmicamente alocado.
Nomes de planilhas do Calc sté onde eu pude perceber só podem conter
espaços, caracteres alfanuméricos e underlines.
O nome da planilha tem que incluir a data e o horario de criação. Eu vou
incluir os trechos de código aqui:
// cria o nome da planilha. Observe que, se eu manualmente inserir o string
criado abaixo no Calc, o OOo não dá erro.
Calendar horaLocal = Calendar.getInstance();
sheetName = new StringBuffer("Tabela de Preços ");
sheetName.append(horaLocal.get(Calendar.DAY_OF_MONTH ));
sheetName.append("_");
sheetName.append(horaLocal.get(Calendar.MONTH ));
sheetName.append("_");
sheetName.append(horaLocal.get(Calendar.YEAR ));
sheetName.append(" ");
sheetName.append(horaLocal.get(Calendar.HOUR_OF_DAY ));
sheetName.append("h ");
sheetName.append(horaLocal.get(Calendar.MINUTE ));
sheetName.append("m ");
sheetName.append(horaLocal.get(Calendar.SECOND ));
sheetName.append("s");
// cria a nova planilha, com a referencia para acessá-la.
if(!xSheets.hasByName(sheetName.toString() ) ) xSheets.insertNewByName(
sheetName.toString() , (short)0 );
Object sheet = xSheets.getByName(sheetName.toString() );
XSpreadsheet xSpreadsheet = (XSpreadsheet)UnoRuntime.queryInterface(
XSpreadsheet.class, sheet);
O runtime do OOo dá erro quando ele tenta invocar o método insertNewByName
com os parâmetros dados.
xSheets.insertNewByName( sheetName.toString() , (short)0 );
se eu colocar no lugar de sheetName.toString() um string estático, um
stringbuffer menor, dá o mesmo erro.
o único modo de fazer o trecho acima rodar encontrado foi colocar
xSheets.insertNewByName( "Tabela de Precos" , (short)0 ); , o que é
insatisfatório por não conter a data e hora de criação.
Alguma ajuda?