我正在开发一个 java 应用程序,它读取文件template.ods,并使用 JopenDocument 用对象数组填充它。
根据JopenDocument 文档,我应该从工作表中获取 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