一、思路:

1、复制本地模板另存为另外的文件

2、准备数据

3、使用XSSFWorkbook,读写文本

二、代码

代码示例:

/**** @param dir=request.getSession().getServletContext().getRealPath(""); 获取文件存放根路径* @return*/
public SimpleNetObject employeeExportNutrition(String dir) {SimpleNetObject sno = new SimpleNetObject();List<ExportNutrientVo> rows = "这一步是查询想要写到excel的数据,用list装起来";if (rows != null) {//模板路径File template = new File(dir + "/data/product_nutrient.xlsx");dir = dir + exportfile;String filename = "/菜谱营养素" + DateUtil.getFormatDate(new Date(), "yyyyMMddHHmmss") + ".xlsx";File filenewname = new File(dir + filename);//先复制模板fileChannelCopy(template, filenewname);File file = new File(dir + filename);try {FileInputStream fileInputStream = new FileInputStream(file);//因为操作的是xlsx,所以使用XSSFWorkbookXSSFWorkbook wb = new XSSFWorkbook(fileInputStream);XSSFSheet sheet = wb.getSheetAt(0);//公式强制执行sheet.setForceFormulaRecalculation(true);//填充数据的逻辑了,举个例子而已,其他逻辑不展示for (int i = 0; i < rows.size(); i++) {String skuname = String.valueOf(rows.get(i).getSku_name());String dbz = String.valueOf(rows.get(i).getDbz());sheet.getRow(i + 1).getCell(0).setCellValue("null".equals(skuname) ? "" : skuname);sheet.getRow(i + 1).getCell(1).setCellValue("null".equals(dbz) ? "" : dbz);}FileOutputStream output = new FileOutputStream(dir + filename);wb.write(output);//写入磁盘保存文件output.close();sno.setResult(1);File pdf = new File(dir + filename);if (pdf.exists()) {//这里就是下载文件的逻辑了,下载逻辑不展示了sno.setData(ossService.uploadFile(pdf, "export_file"));return sno;}sno.setData(exportfile + filename);} catch (Exception e) {logger.error("导出菜谱营养素出错{}", e);return new SimpleNetObject(99, "导出菜谱营养素出错");}}return sno;
}/*** 文件复制* 文件复制到其他路径,然后就单纯操作这个文件即可,不影响原本文件* @param s* @param t*/
public void fileChannelCopy(File s, File t) {try {InputStream in = null;OutputStream out = null;try {in = new BufferedInputStream(new FileInputStream(s), 1024);out = new BufferedOutputStream(new FileOutputStream(t), 1024);byte[] buffer = new byte[1024];int len;while ((len = in.read(buffer)) != -1) {out.write(buffer, 0, len);}} finally {if (null != in) {in.close();}if (null != out) {out.close();}}} catch (Exception e) {logger.error("文件复制出错{}",e);}
}

三、模板结果展示

java将数据写入指定excel模板相关推荐

  1. Java Controller层下载指定Excel模板

    /*** 下载模板* @param request* @param response*/@RequestMapping(value="template")public void t ...

  2. 博图WINCC报表(SQL数据库的建立,TIA_wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置)

    这里写目录标题 目录 一.概述 1.1 前言 1.2 主要功能 1.3 使用的软件 二. SQL server建库和建表 2.1.SQL server建库 2.2SQL server建表 三.建立wi ...

  3. Java将数据写入Excel

    引入Maven依赖: <dependency><groupId>org.apache.poi</groupId><artifactId>poi</ ...

  4. Java使用poi加载Excel模板,将查询出来的数据封装到Excel中并进行指定某些列的合并操作

    Java使用poi加载Excel模板,将查询出来的数据封装到Excel中并进行指定某些列的合并操作 最近一周项目中需要读取数据库中的记录将记录封装到给定的模板中,指定业务列需要进行合并:下面将它进行整 ...

  5. java 往excel中写数据库,poi将数据写入excel表格-怎么用java把数据库里的数据写入到excel表中...

    怎么用java把数据库里的数据写入到excel表中 你是想读取excel内容,然后整合一下数据,然后再生成一个新的excel吧 package aa; import java.io.FileInput ...

  6. java将数据写入csv文件,从csv文件中读取数据

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...

  7. java将数据写入excel_java将数据写入excel

    需要导入jxl.jar (在网上可以下载,然后放到lib文件夹中) 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体.数字 ...

  8. Java从服务端下载Excel模板文件

    方法一 (2021年01月更新) 生成excel模板 @RequestMapping("/downloadExcel")public void downloadExcel(Http ...

  9. 如何在MATLAB中把变量填到Word中,matlab数据写入现有excel表格-如何将matlab中变量写入excel...

    如何将matlab 中的数据写入现有的word 表格中? 你可以这样做: (1)先在matlab里面,把相关数据导出.保存成csv格式的文件:比如说,你可以在workspace视图底下,把相关的变量直 ...

最新文章

  1. 17、计算机图形学——辐射度量学
  2. RFID中间件成为全球软件产业争夺新焦点
  3. oracle is ref cursor java_oracle cursor 用法总结
  4. 碎片化学习的三大障碍及破解之道
  5. 我也来记录我的一些开发心得和笔记!
  6. 客户端脚本调用服务器端动态内容,移动到链接显示预览
  7. linux 内核udp编程,Linux下网络编程实现UDP,还有大量实例
  8. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】
  9. LAMP架构调优(二)——修改Apache运行用户
  10. Codeforces 455B A Lot of Games 字典树上博弈
  11. API Guides Contacts Provider (二)
  12. 资产管理计划份额转让研究(大资管长文)
  13. Jenkins的windows10 从节点经常性掉线问题解决
  14. 学计算机跨考航天航空,往届生跨考计算机经验
  15. 基于JAVA彩票在线购买系统计算机毕业设计源码+系统+lw文档+部署
  16. 数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。
  17. C语言100题练习计划 32——猜数字游戏
  18. 深度学习——3D Fully Convolutional Network for Vehicle Detection in Point Cloud模型实现
  19. win7 ftp服务器修改读写权限,win7 ftp服务器文件夹权限修改
  20. 网页制作初级教程学习资料

热门文章

  1. (修订)如何修改个人简历?一些过来人的经验
  2. jjjjjsssss
  3. 请简述HTML和XHTML最重要的4点不同?
  4. SP3267 DQUERY - D-query【莫队】或【主席树】
  5. 财政政策与货币政策(上)
  6. 最新搜狗泛目录站群程序,助力站群关键词优化方法详解
  7. 【因果推断与机器学习】Causal Inference: Chapter_1
  8. 曾经一年有6个月在考核绩效,谷歌最终放弃使用了20多年的“内卷神器”OKR
  9. persevere的用法_persevere是什么意思_persevere怎么读_persevere翻译_用法_发音_词组_同反义词_坚忍_熬住-新东方在线英语词典...
  10. SCI 文章被拒是一种怎样的体验? - 易智编译EaseEditing