做网站的疑问有哪些,wordpress插件写在模板里,阿根廷网站后缀,用服务器如何做网站思路#xff1a;先准备好模板文件和与之对应的实体类#xff0c;数据库数据等#xff0c;还是之前思路#xff0c;根据查出的数据#xff0c;填充模板文件#xff0c;生成一个临时文件#xff0c;最后将这些个临时文件打包为zip返回前端#xff0c;并将多个临时文件删除…思路先准备好模板文件和与之对应的实体类数据库数据等还是之前思路根据查出的数据填充模板文件生成一个临时文件最后将这些个临时文件打包为zip返回前端并将多个临时文件删除掉就ok了
紧接着就是copy Log(title 表格管理-批量导出, businessType BusinessType.EXPORT)Operation(description 下载表格)PostMapping(/imports)public void excelimport(HttpServletResponse response, RequestBody ListFormVo formVo) throws IOException {response.setContentType(application/zip);response.setCharacterEncoding(UTF-8);String fileName /home/ag/project/files/templates/ System.currentTimeMillis() .zip;response.setHeader(Content-Disposition, attachment; filename\ URLEncoder.encode(fileName, UTF-8));FileOutputStream fos new FileOutputStream(fileName);ZipOutputStream zos new ZipOutputStream(fos);ExcelWriter writer null;ArrayListString o new ArrayList();for (FormVo f : formVo) {// 模板文件路径 switch case部分是我的业务代码多个不同的模板文件 各位就不用看了删掉即可String templateFilePath;String type f.getType();switch (type) {case 1:templateFilePath form;break;case 2:templateFilePath formCao;break;case 3:templateFilePath formLin;break;case 4:templateFilePath formYuan;break;case 5:templateFilePath formShui;break;case 6:templateFilePath formJian;break;case 7:templateFilePath formQi;break;default:throw new RuntimeException(表格类型有误);}// 创建 ExcelWriter 实例String fileName1 /home/ag/project/files/templates/ System.currentTimeMillis() 听忆计划表.xlsx;writer EasyExcel// 写入到临时文件.write(fileName1)// 指定模板.withTemplate(templateFilePath).build();WriteSheet sheet EasyExcel.writerSheet().build();FillConfig fillConfig FillConfig.builder()// 开启填充换行.forceNewRow(true).build();List list getjituan1(f, f.getType());//计算公式Workbook workbook writer.writeContext().writeWorkbookHolder().getWorkbook();workbook.setForceFormulaRecalculation(true);// 执行填充操作writer.fill(list, fillConfig, sheet);o.add(fileName1);
// // 压缩文件writer.finish();}for (String f:o){// 压缩文件File file1 new File(f);addFileToZip(file1, zos);
// 删除临时文件deleteFile(f);}zos.close();//将压缩文件输入流传给response输出流InputStream fileInputStream new FileInputStream(fileName);OutputStream outputStream response.getOutputStream();byte[] bytes new byte[1024 * 8];int len;while ((len fileInputStream.read(bytes)) ! -1) {outputStream.write(bytes, 0, len);}outputStream.close();fileInputStream.close();}static void deleteFile(String path) {File file new File(path);if (file.exists()) {file.delete();}}public static void addFileToZip(File file, ZipOutputStream zos) throws IOException {InputStream fileInputStream new FileInputStream(file);//zip中要放文件称为zipEntryZipEntry zipEntry new ZipEntry(file.getName());zos.putNextEntry(zipEntry);byte[] bytes new byte[1024];int len;while ((len fileInputStream.read(bytes)) 0) {//读的内容会自动放到zip条目中因此zipentry再输出流读完需要关闭zos.write(bytes, 0, len);}fileInputStream.close();zos.closeEntry();}