咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

青锋已经开源了多个开源项目,关注青锋可以获得更多技术支持和资源。

(新增)基于SpringCloud Alibaba Nacos+vue前端的微服务版本。

基于springboot、layui的jsp后台管理系统。

基于springboot、layui的thymeleaf后台管理系统。

基于springboot、ant design的Vue后台管理系统。

基于springboot的青锋家谱管理系统

开源项目地址:

新增“Excel导入导出”案例

增加了【Excel导入导出】案例,可以在实际项目中直接使用。

导入功能示例代码

/** * @title: downloadExcel * @description: 下载导入Excel模板 * @author: qingfeng * @date: 2021/4/5 0005 18:52 */ @RequestMapping(value = "/downloadExcel", method = RequestMethod.GET) public void downloadExcel(HttpServletRequest request,HttpSession session,HttpServletResponse response) throws Exception { PageData pd = new PageData(request); FileUtil.downFile(response, session.getServletContext().getRealPath("/")+"/template/excelImport/eiedata_import_mb.xlsx", "Excel导入导出案例数据导入模板.xlsx"); } /** * @title: toImport * @description: toImport * @author: qingfeng * @date: 2021/4/5 0005 18:57 */ @RequestMapping(value = "/toImport", method = RequestMethod.GET) public String toImport(ModelMap map,HttpServletRequest request) { PageData pd = new PageData(request); map.put("pd",pd); return "web/example/eiedata/eiedata_importExcel"; } /** * @title: saveImportExcel * @description: 执行导入 * @author: qingfeng * @date: 2021/4/5 0005 18:57 */ @RequestMapping(value = "/saveImportExcel", method = RequestMethod.POST) public void saveImportExcel(HttpServletRequest request,HttpSession session,HttpServletResponse response) throws IOException { PageData pd = new PageData(request); String str = "导入成功"; String savePath = ParaUtil.localName; File files = new File(savePath+pd.get("file_path")); FileInputStream fileInputStream = new FileInputStream(files); Workbook book = new XSSFWorkbook(fileInputStream); Sheet sheet = book.getSheetAt(0); //示意访问sheet int totalRows = sheet.getPhysicalNumberOfRows(); int totalCells = sheet.getRow(0).getPhysicalNumberOfCells(); String[] objs = new String[totalCells]; Boolean flag = true; String time = DateTimeUtil.getDateTimeStr(); PageData user = (PageData) session.getAttribute("loginUser"); PageData organize = (PageData) session.getAttribute("loginOrganize"); Pinyin4JUtil pinyin4JUtil = new Pinyin4JUtil(); List

list = new ArrayList

(); for (int i = 0; i < totalRows; i++) { for (int j = 0; j < totalCells; j++) { Cell xssfCell = sheet.getRow(i).getCell(j); if (totalRows >= 1 && sheet.getRow(0) != null) { if(xssfCell==null){ objs[j]=""; }else{ if(xssfCell.toString().trim().equals("")){ objs[j]=""; }else{ if(xssfCell.getCellType()== HSSFCell.CELL_TYPE_FORMULA){ FormulaEvaluator evaluator = book.getCreationHelper().createFormulaEvaluator(); double resultScore = evaluator.evaluate(xssfCell).getNumberValue();// 读取计算结果 =SUM(M6:M15) objs[j] = resultScore+""; }else if(xssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){ if (HSSFDateUtil.isCellDateFormatted(xssfCell)) {// 处理日期格式、时间格式 SimpleDateFormat sdf = null; if (xssfCell.getCellStyle().getDataFormat() == HSSFDataFormat .getBuiltinFormat("h:mm")) { sdf = new SimpleDateFormat("HH:mm"); } else {// 日期 sdf = new SimpleDateFormat("yyyy-MM-dd"); } Date date = xssfCell.getDateCellValue(); objs[j] = sdf.format(date).trim(); } else if (xssfCell.getCellStyle().getDataFormat() == 58) { // 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); double value = xssfCell.getNumericCellValue(); Date date = org.apache.poi.ss.usermodel.DateUtil .getJavaDate(value); objs[j] = sdf.format(date).trim(); } else { System.out.println(xssfCell.toString()); objs[j] = xssfCell.toString().trim(); } }else if(xssfCell.getCellType()==HSSFCell.CELL_TYPE_STRING){ objs[j] = xssfCell.getRichStringCellValue().toString().trim(); }else{ objs[j]=""; } // objs[j] = parseExcel(xssfCell,book);//xssfCell.toString(); } } } } if(i!=0){ if(Verify.verifyIsNotNull(objs[0])){ PageData p = new PageData(); //主键id String id = GuidUtil.getUuid(); p.put("id", id); p.put("create_time", time); //处理数据权限 p.put("create_user",user.get("id")); p.put("create_organize",organize.get("organize_id")); //处理类型 if(objs[1].equals("水果")){ p.put("classify","0"); }else if(objs[1].equals("蔬菜")){ p.put("classify","1"); }else if(objs[1].equals("其他")){ p.put("classify","2"); } p.put("name",objs[2]); //名称 p.put("num",objs[3]); //数量 p.put("order_by",objs[4]); //排序 p.put("remark",objs[5]); //备注 list.add(p); } } } Json json = new Json(); if(list.size()>0){ eiedataService.saveImportList(list); json.setSuccess(flag); json.setMsg(str); }else{ json.setSuccess(flag); json.setMsg(str); } this.writeJson(response,json); }

【列表】导出功能示例代码

@RequestMapping(value = "/exportData", method = RequestMethod.GET) public void exportData(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Exception { PageData pd = new PageData(request); //处理数据权限 pd = dealDataAuth(pd, session); List

list = eiedataService.findList(pd); for (PageData p:list) { if(p.get("classify").equals("0")){ p.put("classify_name","水果"); }else if(p.get("classify").equals("1")){ p.put("classify_name","蔬菜"); }else if(p.get("classify").equals("2")){ p.put("classify_name","其他"); } } Map beans = new HashMap(); beans.put("obj", pd); beans.put("list", list); String tempPath = ""; String toFile = ""; tempPath = session.getServletContext().getRealPath("/") + "/template/excelExport/example_eiedata.xls"; toFile = session.getServletContext().getRealPath("/") + "/template/excelExport/temporary/example_eiedata.xls"; XLSTransformer transformer = new XLSTransformer(); transformer.transformXLS(tempPath, beans, toFile); FileUtil.downFile(response, toFile, "案例信息-导入导出案例_" + DateTimeUtil.getDateTimeStr() + ".xls"); File file = new File(toFile); file.delete(); file.deleteOnExit(); }

【合并单元格】导出功能示例代码

@RequestMapping(value = "/exportMergeData", method = RequestMethod.GET) public void exportMergeData(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Exception { PageData pd = new PageData(request); //处理数据权限 pd = dealDataAuth(pd, session); List

list = new ArrayList

(); PageData p1 = new PageData(); p1.put("classify","0"); p1.put("classify_name","水果"); list.add(p1); PageData p2 = new PageData(); p2.put("classify","1"); p2.put("classify_name","蔬菜"); list.add(p2); PageData p3 = new PageData(); p3.put("classify","2"); p3.put("classify_name","其他"); list.add(p3); for (PageData pp:list) { pd.put("classify",pp.get("classify")); List

ls = eiedataService.findList(pd); pp.put("child_list",ls); } Map beans = new HashMap(); beans.put("obj", pd); beans.put("list", list); String tempPath = ""; String toFile = ""; tempPath = session.getServletContext().getRealPath("/") + "/template/excelExport/example_eiedata_merge.xls"; toFile = session.getServletContext().getRealPath("/") + "/template/excelExport/temporary/example_eiedata_merge.xls"; XLSTransformer transformer = new XLSTransformer(); // transformer.transformXLS(tempPath, beans, toFile); //处理合并单元格 InputStream is = new FileInputStream(tempPath); HSSFWorkbook workbook = (HSSFWorkbook)transformer.transformXLS(is,beans); HSSFSheet sheet = workbook.getSheetAt(0); int startNum = 1; int endNum = 0; for (PageData pp:list) { endNum = endNum+((ArrayList

)pp.get("child_list")).size(); System.out.println(startNum+"------------"+endNum); sheet.addMergedRegion(new CellRangeAddress(startNum,endNum,0,0)); sheet.addMergedRegion(new CellRangeAddress(startNum,endNum,1,1)); startNum = startNum+((ArrayList

)pp.get("child_list")).size(); } // sheet.addMergedRegion(new CellRangeAddress(1,3,0,0)); // sheet.addMergedRegion(new CellRangeAddress(1,3,1,1)); // // sheet.addMergedRegion(new CellRangeAddress(4,5,0,0)); // sheet.addMergedRegion(new CellRangeAddress(4,5,1,1)); // // sheet.addMergedRegion(new CellRangeAddress(6,7,0,0)); // sheet.addMergedRegion(new CellRangeAddress(6,7,1,1)); OutputStream os = new FileOutputStream(toFile); workbook.write(os); is.close();; os.flush(); FileUtil.downFile(response, toFile, "案例信息-导入导出案例_" + DateTimeUtil.getDateTimeStr() + ".xls"); File file = new File(toFile); file.delete(); file.deleteOnExit(); }

开源项目