1

Excelファイルから単一の行を削除しようとしていますが、それはできません。ここのコードを参照してください

try{

    String val = request.getParameter("rdel");
    int va = 5;
    System.out.println("int val"+va);
    FileInputStream file = new FileInputStream(new File(fileName));     
    HSSFWorkbook wb = new HSSFWorkbook(file); // here exception occurs
            HSSFSheet sheet = wb.getSheetAt(0);        



        int lastRowNum=sheet.getLastRowNum();
        if(va>=0&&va<lastRowNum){
            sheet.shiftRows(va+1,lastRowNum, -1);
        }
        if(va==lastRowNum){
            HSSFRow removingRow=sheet.getRow(va);
            if(removingRow!=null){
                sheet.removeRow(removingRow);
            }
        }

    FileOutputStream out = new FileOutputStream ("D:/task.xls");
    wb.write(out);



        }catch(Exception e){ 
        e.printStackTrace(); 
}
        return SUCCESS;
}   

例外を参照してください

org.apache.poi.hssf.record.RecordFormatException: Unable to construct record instance
at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:186)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:328)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:271)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:196)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:312)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:293)
at com.struts.curd.Delete.execute(Delete.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
4

1 に答える 1

1

この問題は 3.2 の後に削除されました... POI バージョンを最新のものに更新します (現在は 3.9 です) ... この問題に再び直面しないことを願っています...

詳細はこちら

于 2013-07-02T12:39:48.610 に答える