欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Java easypoi导出word表格显示

Java easypoi导出word表格显示

2025/6/1 6:26:46 来源:https://blog.csdn.net/Justin_ly/article/details/141932885  浏览:    关键词:Java easypoi导出word表格显示

1.成品

2.依赖

        <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.1</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.1</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>4.4.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>4.4.0</version></dependency>

3.代码

@Overridepublic void importBInfo(HttpServletResponse response,Integer id) {TestRecordFault testRecordFault = testRecordFaultMapper.selectById(id);List<VehicleParts> vehiclePartsList = vehiclePartsMapper.selectList(new LambdaQueryWrapper<VehicleParts>().eq(VehicleParts::getModelId,testRecordFault.getModelId()));Map<Integer, VehicleParts> vehiclePartsMap = vehiclePartsList.stream().collect(Collectors.toMap(VehicleParts::getId, vehicleParts -> vehicleParts));JSONObject vehicle = new JSONObject();Unit unit = null;if (StringUtils.isNotBlank(testRecordFault.getVehicleInfo())) {vehicle = JSONObject.parseObject(testRecordFault.getVehicleInfo());Integer unitId = vehicle.getInteger("unitId");if (unitId != null) {unit = unitMapper.selectById(unitId);}}// 1 设置编码格式、文件名称response.setCharacterEncoding("utf-8");String contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";String fileName = testRecordFault.getFileName() + ".docx";response.setContentType(contentType);try {fileName = URLEncoder.encode(fileName, "UTF-8");} catch (IOException e) {e.printStackTrace();}response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName);Map<String, Object> map = new HashMap<>();// 1.基本属性填充map.put("fName", "F" + testRecordFault.getModelId());map.put("fileName", Optional.ofNullable(testRecordFault.getFileName()).orElse("--"));map.put("modelName", Optional.ofNullable(testRecordFault.getModelName()).orElse("--")); //Optional.ofNullable().orElse("--")map.put("powerHours", Optional.ofNullable(vehicle.get("powerHours")).orElse("--"));map.put("plateNumber", Optional.ofNullable(vehicle.get("plateNumber")).orElse("--"));map.put("powerPackWorking", Optional.ofNullable(vehicle.get("powerPackWorking")).orElse("--"));map.put("unitName", Optional.ofNullable(unit.getUnitName()).orElse("--"));map.put("powerPackYieldHours", Optional.ofNullable(vehicle.get("powerPackYieldHours")).orElse("--"));map.put("factoryDate", Optional.ofNullable(vehicle.get("factoryDate")).orElse("--"));map.put("taskPayloadWorkingHours", Optional.ofNullable(vehicle.get("taskPayloadWorkingHours")).orElse("--"));map.put("mileage", Optional.ofNullable(testRecordFault.getMileage()).orElse(0.0) );map.put("createTime", Optional.ofNullable(testRecordFault.getCreateTime()).orElse("--"));map.put("remark",Optional.ofNullable(testRecordFault.getRemark()).orElse("--"));//list所属系统//拼接数据结构// 2.商品详情列表填充List<Map<String, Object>> goodsWordList = new ArrayList<>();//解析下行数据List<DetailToB> list = JSON.parseArray(testRecordFault.getDetail(), DetailToB.class);for (int i = 0; i < list.size(); i++) {Map<String, Object> goodsMap = new HashMap<>();goodsMap.put("id", i+1); //Optional.ofNullable().orElse("--")goodsMap.put("testingProcess", Optional.ofNullable(list.get(i).getFileName()).orElse("--")); //检测流程名称goodsMap.put("item", Optional.ofNullable(list.get(i).getTestProject()).orElse("--")); //检测项目goodsMap.put("result", Optional.ofNullable(list.get(i).getTestResult()).orElse("--")); //检测结果goodsMap.put("partsName",Optional.ofNullable(list.get(i).getLittleUnit()).orElse("--")); //对应最小可更换单元goodsMap.put("subsystemName",Optional.ofNullable(list.get(i).getGenusSystem()).orElse("--")); //所属分系统goodsWordList.add(goodsMap);}map.put("goods", goodsWordList);//导出wordString location = "/template/testB.docx";try {XWPFDocument document = new MyXWPFDocument(Objects.requireNonNull(this.getClass().getResourceAsStream(location)));// 读取模板WordExportUtil.exportWord07(document, map);document.write(response.getOutputStream());} catch (Exception e) {e.printStackTrace();}}

4.模板

5.testB内容

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词