https://bz.apache.org/bugzilla/show_bug.cgi?id=69021
Bug ID: 69021
Summary: HSSF: Java.lang.ClassCastException: class
org.apache.poi.hssf.record.DSFRecord cannot be cast to
class org.apache.poi.hssf.record.TabIdRecord
Product: POI
Version: unspecified
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: HSSF
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
I have an very old .xls file,when I use code blow to change its content:
```
String filePath = "D:\\BRD2002.xls";
try {
Workbook workbook = new HSSFWorkbook(new
FileInputStream(filePath));
Sheet sheet = workbook.getSheetAt(0);
int rowIndex = 2;
sheet.shiftRows(rowIndex, sheet.getLastRowNum(), 1);
Row row = sheet.createRow(rowIndex);
row.createCell(0).setCellValue("switch");
FileOutputStream outputStream = new FileOutputStream(filePath);
workbook.write(outputStream);
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
```
An Exception came out At row:'workbook.write(outputStream);'
Exception details:
```
java.lang.ClassCastException: class org.apache.poi.hssf.record.DSFRecord cannot
be cast to class org.apache.poi.hssf.record.TabIdRecord
(org.apache.poi.hssf.record.DSFRecord and
org.apache.poi.hssf.record.TabIdRecord are in unnamed module of loader 'app')
at
org.apache.poi.hssf.model.InternalWorkbook.preSerialize(InternalWorkbook.java:1078)
at
org.apache.poi.hssf.usermodel.HSSFWorkbook.getBytes(HSSFWorkbook.java:1506)
at
org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1424)
at
org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1410)
at com.fzm.batch.InsertRowInXLS.main(InsertRowInXLS.java:25)
```
When I commented out the line of code that contains "sheet.shiftRows" and
executed it again, there were no exceptions anymore.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]