Java.lang.IndexOutOfBoundsException:

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!

Esse erro acontece quando voce tenta acessar um “campo” que não existe na matriz, como não conheço essa classe que voce esta tentando manipular, da uma olhada se existe alguma forma de aumentar a matriz quando voce inicializa a classe ou consegue aumentar a matriz, que pelo codigo que voce postou eu não vi nenhum comando que configure a matriz que voce manipule.

Pode ser que o padrão inicial seja esse range que voce esta mexendo