SSM POI execle 导入篇 (含工具类)
来源:互联网 发布:新浪微博程序员 编辑:程序博客网 时间:2024/05/29 17:20
Controller
package com.jk.poiExcel.controller;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.multipart.MultipartFile;import com.jk.file.service.IFileService;import com.jk.login.bean.TAtyUser;import com.jk.poiExcel.excelDel.ReadExcel;@Controllerpublic class ImportExcel {@Autowiredprivate IFileService fileServiceImpl;@RequestMapping("/importExcel")public String importExcel(@RequestParam(value = "file_upload2", required = false) MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws IOException {String filename = file.getOriginalFilename();if (StringUtils.isNotBlank(filename)) {String name = filename.substring(filename.lastIndexOf(".")).toLowerCase();// 截取后缀名,并全部转小写InputStream in = file.getInputStream();// 定义输入流;List<TAtyUser> userlist = new ArrayList<TAtyUser>();// 这里泛型TAtyUser即是Bean载体// 判断上传的execle文件的版本是xls还是xlsx格式,走不同读取流的方法if (".xlsx".equals(name)) {userlist = ReadExcel.readXlsx(in);// 从execle读取单元格数据,存入list}if (".xls".equals(name)) {userlist = ReadExcel.readXls(in);//通过readXls已经读取到execle中的值了,通过for循环输出验证一下//这里可以直接调用Service,将list对象持久化到数据库,就不演示了for (TAtyUser tAtyUser : userlist) {System.out.println(tAtyUser.getcName());}}}return "sy/weclome";//执行完毕跳页面,没什么特别意义}/*@RequestMapping("/importExcel1")public ModelAndView importExcel1(@RequestParam(value = "file1", required = false) MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws IOException {// 判断文件的格式String filename = file.getOriginalFilename();//if (StringUtils.isNotBlank(filename)) {//String name = filename.substring(filename.lastIndexOf(".")).toLowerCase();// 将文件解析为流InputStream in = file.getInputStream();List<TAtyUser> userlist = new ArrayList<TAtyUser>();// 调用相应的解析方法if (".xlsx".equals(name)) {userlist = ReadExcel.readXlsx(in);}if (".xls".equals(name)) {userlist = ReadExcel.readXls(in);System.out.println(userlist.size());}}ModelAndView mav = new ModelAndView();mav.setViewName("sy/weclome");return mav;}*/}Util
package com.jk.poiExcel.excelDel;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import com.jk.login.bean.TAtyUser;import com.jk.poiExcel.common.Common;/** * @author Hongten * @created 2014-5-20 */ public class ReadExcel { /**32 * read the Excel file33 * @param path the path of the Excel file34 * @return35 * @throws IOException36 */// public List<TAtyUser> readExcel(String path) throws IOException {// if (path == null || Common.EMPTY.equals(path)) {// return null;// } else {// String postfix = PathUtil.getPostfix(path);// if (!Common.EMPTY.equals(postfix)) {// if (Common.OFFICE_EXCEL_2003_POSTFIX.equals(postfix)) {// return readXls(path);// } else if (Common.OFFICE_EXCEL_2010_POSTFIX.equals(postfix)) {// return readXlsx(path);// }// } else {// System.out.println(path + Common.NOT_EXCEL_FILE);// }// }// return null;// } /** * Read the Excel 2010 * @param path the path of the excel file * @return * @throws IOException */ public static List<TAtyUser> readXlsx( InputStream is) throws IOException { XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); TAtyUser user = null;//从哪一张表映射的实体类创建对象 List<TAtyUser> list = new ArrayList<TAtyUser>(); // Read the Sheet for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) { //来获取sheet工作表根据下标 XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet); if (xssfSheet == null) { continue; } //从单元格循环读取取值,并付给对象 for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) { XSSFRow xssfRow = xssfSheet.getRow(rowNum); if (xssfRow != null) { user = new TAtyUser(); XSSFCell name = xssfRow.getCell(0); XSSFCell loginID = xssfRow.getCell(1); XSSFCell email = xssfRow.getCell(2); user.setcName(getValue(name)); user.setcLoginid(getValue(loginID)); user.setcMail(getValue(email) ); list.add(user); } } } return list; } /** * Read the Excel 2003-2007 * @param path the path of the Excel * @return * @throws IOException */ public static List<TAtyUser> readXls(InputStream is) throws IOException { HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is); TAtyUser user = null; List<TAtyUser> list = new ArrayList<TAtyUser>(); for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) { HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet); if (hssfSheet == null) { continue; } for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) { HSSFRow hssfRow = hssfSheet.getRow(rowNum); if (hssfRow != null) { user = new TAtyUser(); HSSFCell name = hssfRow.getCell(0); HSSFCell loginID = hssfRow.getCell(1); HSSFCell email = hssfRow.getCell(2); user.setcName(getValue(name)); user.setcLoginid(getValue(loginID)); user.setcMail(getValue(email) ); list.add(user); } } } return list; } @SuppressWarnings("static-access") private static String getValue(XSSFCell xssfRow) { if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) { return String.valueOf(xssfRow.getBooleanCellValue()); } else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) { return String.valueOf(xssfRow.getNumericCellValue()); } else { return String.valueOf(xssfRow.getStringCellValue()); } } @SuppressWarnings("static-access") private static String getValue(HSSFCell hssfCell) { if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) { return String.valueOf(hssfCell.getBooleanCellValue()); } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) { return String.valueOf(hssfCell.getNumericCellValue()); } else { return String.valueOf(hssfCell.getStringCellValue()); } }}
阅读全文
0 0
- SSM POI execle 导入篇 (含工具类)
- SSM POI---导出(含工具类)
- SSM POI根据预定好的模版导出execle
- execle导入
- POI导入导出工具类
- JAVA-POI 导入导出EXCEL(含JSON)
- excel 导入导出 poi工具类
- POI导入工具类+ layer弹窗 实例
- java poi导入Excel通用工具类
- java poi导入Excel通用工具类
- npoi导入execle
- SSM框架+poi实现EXCEL导入
- ssm框架下的poi导入小记
- POI导入Excel含.xls和.xlsx
- TDBGrid 数据导入到execle
- Java Poi 在SSM框架中的应用(由Excel 导入到Mysql数据库)
- 导入导出封装的工具类 (一) 利用POI封装
- 使用工具类 使用poi导入导出excel报表
- jq判断复选框是否被选中的3中方法
- Android:Swipe与ScrollView的滑动冲突问题
- python脚本语言初步学习
- javascript 全选和全不选效果
- 最长单增子序列的打印
- SSM POI execle 导入篇 (含工具类)
- BZOJ 1565: [NOI2009]植物大战僵尸
- MPI入门
- js实现倒计时效果
- java acm 输入输出io问题
- Reshape the Matrix(leetcode)
- Android:ListView的点击事件与子控件点击冲突的解决
- 汉密尔顿图
- 算法-从动态规划到贪心算法,Bellman-Ford和Dijkstra算法求解最短路