頁面部分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>