Olá Pessoal,
Estou utilizando o código abaixo para alterar planilhas ods do OpenOffice. O que ocorre é que só consigo alterar as células que estão dentro de um determinado array… tipo assim… se a planilha estiver com dados preenchidos até a célula C27, por exemplo, eu consigo alterar qualquer outra célula (mesmo que ela esteja sem dados) de A1:A27 até C27 (incluindo B1:B27), mas se eu tentar escrever algo em A28 (em diante) ou B28 (em diante) C28 (em diante)… ou qualquer outra célula a partir de D1 é apresentando a exceção IndexOutOfBoundsException… o que preciso fazer para alterar (ou escrever no caso da célula estar vazia) em qualquer célula da planilha?
public static void main(String[] args) throws FileNotFoundException, java.io.IOException {
// Load the file.
File file = new File(“d:/planilhas/teste2.ods”);
final Sheet sheet = SpreadSheet.createFromFile(file).getSheet(0);
// Change strings.
sheet.setValueAt(“Alterar string”, 1,2); // Write Alterar string in B3
sheet.setValueAt(237, 0,3); // Writer the value 237 in A4
sheet.getCellAt(“B4”).setValue(27); // Write the value 27 in B4
OOUtils.open(sheet.getSpreadSheet().saveAs(file)); // Open and save the file named file
segue o erro quando coloquei para escrever na célula: “B40”
Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 39, Size: 7
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.jopendocument.dom.spreadsheet.Sheet.getRow(Sheet.java:23
at org.jopendocument.dom.spreadsheet.Sheet.getCellAt(Sheet.java:17
at org.jopendocument.dom.spreadsheet.Sheet.getCellAt(Sheet.java:183)
at pacoteteste.DocViewer.main(DocViewer.java:39)
Valeu aeh!