Exception in thread "main" java.lang.IndexOutOfBoundsException:

4 respostas
E

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:238)

at org.jopendocument.dom.spreadsheet.Sheet.getCellAt(Sheet.java:178)

at org.jopendocument.dom.spreadsheet.Sheet.getCellAt(Sheet.java:183)

at pacoteteste.DocViewer.main(DocViewer.java:39)

Valeu aeh!


4 Respostas

B

Tenta aumentar o número de colunas ou linhas com ensureColumnCount(int) e ensureRowCount(int)

E

Valeu Bruno. Funcionou!!!

Aproveitando, sabe como posso fazer para ler de um arquivo ods (já consigo criar, gravar, alterar) tipo devolver (para quem solicitar à minha interface) o que tem na celular x,y, ou até mesmo devolver todo conteúdo da planilha? sabe como é… estou iniciando :slight_smile:

Muito obrigado.

B

Acho que primeiro você tem que definir como a pessoa vai te passar a planilha, o que quer devolver (tipos de dados), como ela vai fazer a consulta.

Se bem que tudo isso tem no javadoc do jopendocument p/ planilhas:

http://www.jopendocument.org/docs/org/jopendocument/dom/spreadsheet/package-summary.html

alexandreaw

Cara por favor le esse topico aqui antes de postar codigo no forum

http://www.guj.com.br/posts/list/50115.java

valeu

Criado 30 de maio de 2008
Ultima resposta 30 de mai. de 2008
Respostas 4
Participantes 3