填充并导出的原模板如下

public void exportPublicity(HttpServletResponse response, HttpServletRequest request) throws Exception {// 模板地址String fileUrl = "J:\\评审意见填报导入模板.xlsx";File newFile = new File(fileUrl);// 文件存在则删除,保证文件的初始值if(newFile.exists()){newFile.delete();}String url = 文件的链接地址;// 拉取服务上的文件到本地FileUtil.downByFileLink(url, fileUrl, null);newFile = new File(fileUrl);InputStream is = null;XSSFWorkbook workbook = null;XSSFSheet sheet = null;try {is = new FileInputStream(newFile);// 将excel文件转为输入流workbook = new XSSFWorkbook(is);// 创建个workbook,// 获取第一个sheetsheet = workbook.getSheetAt(0);} catch (Exception e1) {e1.printStackTrace();}if (sheet != null) {try {List<User>  list = 需要填充的数据;if (!CollectionUtils.isEmpty(list)) {// 写数据FileOutputStream fos = new FileOutputStream(newFile);XSSFRow row = sheet.getRow(2);if (row == null) {row = sheet.createRow(2);}XSSFCell cell = row.getCell(0);if (cell == null) {cell = row.createCell(0);}// 处理身份证的格式,如不需要可删除// 参考:https://blog.csdn.net/wuxin1210/article/details/121648974?spm=1001.2014.3001.5501XSSFRow row2 = sheet.getRow(2); // 第二行XSSFCell cell24 = row2.getCell(4); // 第四列 ,一起表示第二行的第四列的单元格if (cell24 == null) {cell24 = row2.createCell(4);}XSSFCellStyle cellStyle = cell24.getCellStyle();for (int m = 0; m < list.size(); m++) {User vo = list.get(m);row = sheet.createRow((int) m + 2);// 序号cell = row.createCell(0);cell.setCellValue(vo.getNo());// 名称cell = row.createCell(1);cell.setCellValue(vo.getFullName());// 地市cell = row.createCell(2);cell.setCellValue(vo.getCity());// 区县cell = row.createCell(3);cell.setCellValue(vo.getArea());// 身份证号cell = row.createCell(4);cell.setCellValue(vo.getIdCard());cell.setCellStyle(cellStyle);}workbook.write(fos);fos.flush();fos.close();}// 下载InputStream fis = new BufferedInputStream(new FileInputStream(newFile));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();response.reset();response.setContentType("text/html;charset=UTF-8");OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/x-msdownload");String newName = URLEncoder.encode("模板.xlsx", "UTF-8");response.addHeader("Content-Disposition", "attachment;filename=\"" + newName + "\"");response.addHeader("Content-Length", "" + newFile.length());toClient.write(buffer);toClient.flush();} catch (Exception e) {throw new MyFeignException("下载模板失败:" + e.getMessage());} finally {try {if (null != is) {is.close();}} catch (Exception e) {e.printStackTrace();}}}}

FileUtil

package com.b2bwings.cqjy.common.util;import lombok.extern.slf4j.Slf4j;import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;@Slf4j
public class FileUtil {/*** 根据文件的链接来下载文件** @param urlString https://video/static/20211020/d04ee724-3fdd-48fb-ba6c-bfe19708154a.mp4* @param filename  D:\wuxin\Desktop\other\test\ddd-48fb-ba6c-bfe19708154a.mp4* @param timeout   连接时长* @return*/public static boolean downByFileLink(String urlString, String filename, Integer timeout) {log.info("下载视频开始时间 = " + DateUtil.getYYYYMMDDHHMMSS(new Date()));boolean ret = false;File file = new File(filename);try {if (file.exists()) {ret = true;} else {log.info("文件下载操作");// 构造URLURL url = new URL(urlString);// 打开连接HttpURLConnection con = (HttpURLConnection) url.openConnection();if (timeout != null) {con.setConnectTimeout(timeout);con.setReadTimeout(timeout);}con.connect();int contentLength = con.getContentLength();log.info("打印文件的长度" + contentLength);// 输入流InputStream is = con.getInputStream();// 1K的数据缓冲byte[] bs = new byte[1024];// 读取到的数据长度int len;// 输出的文件流File file2 = new File(file.getParent());file2.mkdirs();if (file.isDirectory()) {} else {file.createNewFile();//创建文件}OutputStream os = new FileOutputStream(file);// 开始读取while ((len = is.read(bs)) != -1) {os.write(bs, 0, len);}// 完毕,关闭所有链接os.close();is.close();if (contentLength != file.length()) {file.delete();ret = false;} else {ret = true;}}} catch (IOException e) {file.delete();ret = false;} finally {log.info("下载视频结束时间 = " + DateUtil.getYYYYMMDDHHMMSS(new Date()));return ret;}}}

JAVA - 根据指定 excel 模板填充数据后导出相关推荐

  1. Java使用自定义Excel模板填充数据

    Java使用自定义Excel模板填充数据 上期我们说到使用POI简单的制作一个Excel,这里我们教林外一种方法,就是把Excel写好定为模板,直接填充数据. 老样子还是要添加POM依赖 <de ...

  2. java读取excrl模板填充数据,spring mvc 读取excel模板填充数据下载

    需求: 将订单信息导出到excel中,存在excel模板,需要向其中添加数据. 技术选型: 对于excel操作,使用apache poi包.到maven repository找poi最新的发行包. 搜 ...

  3. SpringBoot使用EasyExcel 模板填充数据并导出,以及Excel导入解析入库

    需求 1.导出Excel模板,第一个sheet为用户基本信息,默认只有表头,用户手动填写后续用来导入人员信息.第二个sheet为组织架构信息,默认从数据库查询组织信息,方便用户查询组织编码. 2.导入 ...

  4. php excel 模板,PHP以Excel模板填充数据并生成新的Excel文件

    遇到这个一个问题,需要生成带水印的Excel文件,具体思路如下:先设置一个调好格式的Excel文件作为模板,再用PHP以模板文件填充,并生成新的Excel文件,这样新的文件就和模板文件格式一致.程序用 ...

  5. java导出数据到excel模板_springboot+jxls 根据Excel模板 填写数据并导出

    项目结构 pom.xml net.sf.jxls jxls-core 1.0.6compile 学生信息表模板: ExcelUtiles package cn.bdqn.utils;import ne ...

  6. YII2 扩展 读取excel模板写入数据并导出

    要导出的数据 $dataList public function CustomSaveExcel($dataList){//引入核心文件ini_set('memory_limit','1024M'); ...

  7. poi读取excel多层表头模板写入数据并导出

    poi读取excel多层表头模板写入数据并导出 这两天刚好写excel,写了一份自定义表头的,写了一份模板的,这里展示一份读取excel模板写入数据并导出的 //title excel的名称 head ...

  8. Java实现根据Word模板填充表格数据(poi方式),以及doc和docx转PDF,最全最详细版本,解决外部引用jar在linux上报ClassNotFound的问题。

    Java实现根据Word模板填充表格数据(poi方式),以及doc和docx转PDF,最全最详细版本,解决外部引用jar在linux上报ClassNotFound的问题. 适用场景: 1.固定格式的W ...

  9. java如何根据模板填充数据生成word文档

    java根据模板填充数据生成word文档 这篇文章干什么? 思路总览 1.准备word模板 2.转换文件格式 3.编写代码 补充--下载流 这篇文章干什么?   使用代码将word模板内容进行替换,并 ...

最新文章

  1. 构建RESTful风格的WCF服务
  2. 你想要什么样的财富自由
  3. java类的修饰词有哪些_Java类与对象及访问控制修饰词解析
  4. 报名 | 2019年社会计算机国际会议
  5. Xmind笔记之HTML5+CSS
  6. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 基于数据库资源的多语言实现...
  7. 信奥中的数学:二次互反律
  8. (三)Mybatis类型转换器,接口传参类型,一对一,一对多查询resultMap配置
  9. 运行在一个完全隔离环境中的完整计算机系统,凤凰系统完全释放PC性能 模拟器是指通过软件模拟具有完整硬件系统功能、运行在一个完全隔离环境中的计算机系统...
  10. android 资源国际化 国家/地区 语言缩写代码
  11. 人工智能基础 | Python实现-产生式系统-文字动物识别系统
  12. 【游戏开发实战】教你在Unity中实现笼中窥梦的效果(RenderTexture | 视觉差| 多相机 | 渲染 | shader | 多场景)
  13. C++二进制数转换十进制数
  14. 如果兔子拼命奔跑 乌龟怎么办
  15. python怎样查找收盘价_如何在Python中从晨星获得调整后的收盘价?
  16. 【构造】POJ-3295 Tautology
  17. 【读过的书】《万人如海一身藏》
  18. 新的 systemctl 命令代替原来的 chkconfig、service 命令
  19. 微软计算机学院,微软亚洲研究院谢幸博士,秦涛博士访问计算机学院并做学术报告...
  20. 一个支付流程要考虑到哪些测试点?

热门文章

  1. 首篇自监督学习推荐系统综述: 150篇文献概述四大类方法(含开源算法库SELFRec)...
  2. 英伟达证书泄漏、CISA增加95个必修漏洞|3月7日全球网络安全热点
  3. CV2视频剪辑,从一个长视频中截取多个视频片段
  4. 为什么低制程工艺芯片这么难?
  5. Mysql基础面试题及查询联系
  6. [置顶]德国Holoeye下细度杂相位空间光调制器空间光调制器www.rayscience.comoelabs碧t88c...
  7. C语言2进制除法口诀表代码完整版正确版本
  8. 《2周攻克期权策略》读书笔记
  9. 影像自动解译_遥感影像解译的研究现状和发展趋势.pdf
  10. 鸿蒙生态建设规划,鸿蒙智能硬件生态的”场景化超级终端“,到底是什么?