POI 导入导出Excel文件到数据库
刚刚做了JXL导入导出Excel的练习,于是就试着用POI来实现Excel的导入导出,下面是自己POI导入导出Excel的一些代码,仅供参考,如有错误,希望加好友讨论指正。QQ:84926183
?
1.导入相应的poi jar包,我用的是3.7;
?
2.导入Excel文件到数据的类(这里我把解析Excel文件的操作封装成一个类,在action中只要调用该类就可以了):
?到此为止就是导入Excel文件的所有代码。
?
?
3.导出为Excel文件:
/** * POI : 导出数据,存放于Excel中 * @param os 输出流 (action: OutputStream os = response.getOutputStream();) * @param employeeInfos 要导出的数据集合 */public static void exportEmployeeByPoi(OutputStream os, List<EmployeeInfo> employeeInfos) {try {//创建Excel工作薄HSSFWorkbook book = new HSSFWorkbook();//在Excel工作薄中建一张工作表HSSFSheet sheet = book.createSheet("员工信息");//设置单元格格式(文本)//HSSFCellStyle cellStyle = book.createCellStyle();//第一行为标题行HSSFRow row = sheet.createRow(0);//创建第一行HSSFCell cell0 = row.createCell(0);HSSFCell cell1 = row.createCell(1);HSSFCell cell2 = row.createCell(2);HSSFCell cell3 = row.createCell(3);HSSFCell cell4 = row.createCell(4);//定义单元格为字符串类型cell0.setCellType(HSSFCell.CELL_TYPE_STRING);cell1.setCellType(HSSFCell.CELL_TYPE_STRING);cell2.setCellType(HSSFCell.CELL_TYPE_STRING);cell3.setCellType(HSSFCell.CELL_TYPE_STRING);cell4.setCellType(HSSFCell.CELL_TYPE_STRING);//在单元格中输入数据cell0.setCellValue("员工编号");cell1.setCellValue("员工姓名");cell2.setCellValue("员工性别");cell3.setCellValue("出生日期");cell4.setCellValue("身份证号");//循环导出数据到excel中for(int i = 0; i < employeeInfos.size(); i++) {EmployeeInfo employeeInfo = employeeInfos.get(i);//创建第i行HSSFRow rowi = sheet.createRow(i + 1);//在第i行的相应列中加入相应的数据rowi.createCell(0).setCellValue(employeeInfo.getEmployeeNumber());rowi.createCell(1).setCellValue(employeeInfo.getFullName());//处理性别(M:男 F:女)String sex = null;if("M".equals(employeeInfo.getSex())) {sex = "男";}else {sex = "女";}rowi.createCell(2).setCellValue(sex);//对日期的处理if(employeeInfo.getDateOfBirth() != null && !"".equals(employeeInfo.getDateOfBirth())){java.text.DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");rowi.createCell(3).setCellValue(format1.format(employeeInfo.getDateOfBirth()));}rowi.createCell(4).setCellValue(employeeInfo.getNationalIdentifier());}//写入数据 把相应的Excel 工作簿存盘book.write(os);} catch (IOException e) {e.printStackTrace();}}?action代码和导入的相似这里就不再进行赘述。
?
?
以上就是自己写的用POI导入导出Excel的全部代码。