Java 从XSSFWorkbook和SXSSFWorkbook强制转换对象
我使用一个模板文件,第一页包含两个表。我需要在第一张纸上执行2个操作Java 从XSSFWorkbook和SXSSFWorkbook强制转换对象,java,apache-poi,Java,Apache Poi,我使用一个模板文件,第一页包含两个表。我需要在第一张纸上执行2个操作 有位置数据表列标题(例如,sr.no、位置和相关数据字段),我需要在其中使用XSSFWorkbook,以便根据位置的大小向下移动行 有一个设备表,我需要在其中使用流式api,即SXSSFWorkbook对象 我使用XSSFWorkbook创建工作簿对象,向下移动行,然后尝试将工作簿强制转换为SXSSFWorkbook。但它在执行时会抛出错误 java.lang.IllegalArgumentException: Attempt
java.lang.IllegalArgumentException: Attempting to write a row[11] in the range [0,30] that is already written to disk.
如果我首先使用SXSSFWorkbook创建工作簿obj,则无法创建XSSF从中删除工作簿。有人能建议一下怎么做吗 我试过:
FileInputStream inputStream = new FileInputStream(new File(filePath));
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheet("Sheet1");
// First shift rows down - WORKS FINE
sheet.shiftRows( tab1HeaderRowNum + 1, sheet.getLastRowNum(), locationRecordsSize - 1);
// Copy style of row on new rows - WORKS FINE
for(int i = 1; i < locationRecordsSize; i++){
sheet.copyRows(tab1HeaderRowNum , tab1HeaderRowNum , (tab1HeaderRowNum + i), cellCopyPolicy);
}
// Create new SXSSFWorkbook
SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(workbook);
SXSSFSheet sxssfSheet = sxssfWorkbook.getSheet("Sheet1");
if(sxssfSheet.getRow(rowNum) == null){ // rowNum is of row which is newly added using shiftRows
row = sxssfSheet.createRow(rowNum); // Error Occurs Here
}else{
row = sxssfSheet.getRow(rowNum);
}
FileInputStream-inputStream=newfileinputstream(新文件(filePath));
XSSF工作簿=新XSSF工作簿(inputStream);
XSSFSheet sheet=workbook.getSheet(“Sheet1”);
//第一班向下排-工作正常
sheet.shiftRows(tab1HeaderRowNum+1,sheet.getLastRowNum(),locationRecordsSize-1);
//复制新行上的行样式-工作正常
对于(int i=1;i
Im使用Apache POI 3.15这种方法是不可能的:“不支持的内容:访问模板中的初始单元格和行…”。现在我正在使用SXSSF编写所有模板组件。