2007版本excel多個sheet頁數據經過ibatis批量導入數據庫

頁面部分java

<form method="post" name ="test" enctype="multipart/form-data">post

<input type="file" name="file"/>excel

</form>orm

實體類部分對象

public Class Test{ip

   private String id;字符串

   private String name;get

   private String address;input

 //如下爲get、set方法(省略)it

}

Action部分

按照strusts2獲取file

private File file;
 private String fileName;
 private String fileContentType;

添加get、set方法

//獲取workBook對象

XSSFWorkbook workBook = new XSSFWorkbook(file.getInputStream());

//定義workSheet

XSSFSheet workSheet = null;

//定義從excel獲取的數據拼接成一個List對象

List<Test> listTest=new ArrayList<Test>();

//獲取sheet頁數量

int sheetCount = workBook.getNumberOfSheets();

for(int i=0;i<sheetCount;i++){

//獲取第i個sheet

 workSheet = workBook.getSheetAt(i);

//獲取該sheet頁的行數

  for(int j=0;j<workSheet.getPhysicalNumberOfRows(); j++){

       //獲取第j行

        XSSFRow row = workSheet.getRow(j);

       Test test=new Test();

        //row.getCell(0)獲取第j行第1個單元格的數據

        test.setId(row.getCell(0)==null ? "":row.getCell(0).toString().trim());

//判斷 若是第2行爲數字格式   轉成字符串

        if(row.getCell(1) !=null && row.getCell(1).getCellType() == XSSFCell.CELL_TYPE_NUMERIC){
      row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
     }

   test.setName(row.getCell(1)==null ? "":row.getCell(1).toString().trim());

  test.setAddress(row.getCell(2)==null ? "":row.getCell(2).toString().trim());

listTest.add(test);

}

}

ibatis部分

<insert id="export" parameterClass="java.util.List">

<![CDATA[

insert all

]]>

<iterate conjunction=" ">

<![CDATA[

into test(id,name,address)

values

(#listTest[].id#,#listTest[].name#,#listTest[].address#)

]]>

</iterate>

<![CDATA[

select 1 from dual

]]>

</insert>

相關文章
相關標籤/搜索