我有一个充当模板的现有工作簿。我尝试更新现有行中的单元格值,这意味着相邻单元格具有值。问题是文件创建后我打开它,我收到以下错误: “Excel在......中找到了不可读的内容。”
我认为原因是SXSSFWorkbook只处理写入,如果存在行,则无法更新行的内容,这需要阅读然后写入 - 这是正确的还是我遇到了错误?
由于
答案 0 :(得分:3)
另一个问题是,如果您使用的是addMergedRegion,则行和列的CellRangeAddress值必须按升序排列:
// Note that rows and columns for CellRangeAddress constructor have to be in ascending order
// The commented out line below will generate an error when opening the sheet:
// sheet.addMergedRegion(new CellRangeAddress(lastRow, lastRow-(rowsTobeCreated-1), 0, 0));
// In order this call works:
sheet.addMergedRegion(new CellRangeAddress(lastRow-(rowsTobeCreated-1), lastRow, 0, 0));
答案 1 :(得分:0)
如果其他人遇到此问题,请检查以确保SheetName的长度不会太长。设置工作簿工作表名称超过大约30个字符时,我收到此错误。
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
wb.setSheetName(0, "Supporting Documentation"); // make sure this is not too long