【发布时间】:2021-03-29 11:59:44
【问题描述】:
我正在开发一个 java 应用程序,它读取文件 template.ods,并使用 JopenDocument 用对象数组填充它。
基于JopenDocument documentation,我应该从Sheet中获取TableModel,然后使用方法setValueAt(value, rowIndex, columnIndex)来修改它,但是一旦我这样做了,一个IndexOutofBoundsException 被触发,这是我的方法:
主类
public File generateODSFileWithTemplate(String fileName, Object[][] rows, File template) throws FileNotFoundException {
final Sheet sheet = SpreadSheet.createFromFile(template).getSheet(0);
sheet.getSpreadSheet().getTableModel("data").setValueAt("Hello from Main", 3, 1);
File outFile = new File(fileName);
sheet.getSpreadSheet().saveAs(outFile);
return outFile;
}
模板.ods
如果我在第一行添加一个值:
sheet.getSpreadSheet().getTableModel("data").setValueAt("Hello from Main", 0, 0);
它有效,并且列值得到更新。
我想知道我做错了什么来得到这个异常?
有没有办法像 DefaultTableModel 一样将数组直接传递给 TableModel 来插入数据。
我正在使用 OpenOffice 创建 template.ods
【问题讨论】:
标签: java swing tablemodel defaulttablemodel jopendocument