java中自定义excel模板并且填充内容

场景

读取某一份固定的excel模板,根据数据填充进入指定的位置

本地测试时,在本地resources下创建一个存放模板的位置

例:

实现

挺简单的就直接贴代码吧,不得不吐槽一下博客园的编辑器真的很难用..

@Override

public void exportDeposit(UserInfo userInfo, Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {

/*

业务内容

*/

// excel模板路径(分别是本地测试路径和云上服务器路径)

String file = this.getClass().getClassLoader().getResource("excel/zhck.xls").getFile();

// String file = "/usr/local/wms_trade/zhck.xls";

File fi = new File(file);

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));

// 读取excel模板

HSSFWorkbook wb = new HSSFWorkbook(fs);

// 读取了模板内所有sheet内容

HSSFSheet sheet = wb.getSheetAt(0);

sheet.setForceFormulaRecalculation(true);

// 在相应的单元格进行赋值

// 第11行 第6列,这是部分业务内容,其实和本文关系不大,但是可以用来给需要的人参考,内容是如何填入的,不过我更加建议去参考原生api

sheet.getRow(3).getCell(3).setCellValue(deposit.getType());

if (deposit.getGmtDeposit() != null) {

sheet.getRow(3).getCell(1).setCellValue(deposit.getGmtDeposit().toString());

}

sheet.getRow(3).getCell(5).setCellValue(deposit.getDepositNumber());

sheet.getRow(3).getCell(7).setCellValue(deposit.getCreateName());

sheet.getRow(4).getCell(1).setCellValue(deposit.getDestination());

/*

业务内容

*/

// 浏览器打开下载窗口

String fileName = deposit.getDepositNumber() + "出库单.xls";

response.reset();

response.setCharacterEncoding("UTF-8");

// Content-disposition 浏览器以下载的形式打开

String header = request.getHeader("User-Agent").toUpperCase();

if (header.contains("MSIE") || header.contains("TRIDENT") || header.contains("EDGE")) {

fileName = URLEncoder.encode(fileName, "utf-8");

fileName = fileName.replace("+", "%20");

} else {

fileName = new String(fileName.getBytes(), "ISO8859-1");

}

response.setHeader("Content-Disposition", "attachment; filename=" + fileName);

response.setContentType("application/vnd.ms-excel");

// 直接用数组缓冲输出流输出

wb.write(response.getOutputStream());

}

留言

注释里写的挺明白的我个人觉得,只要看完应该就可以操作了,

具体的如何填充内容可以直接去搜索HSSFWorkbook,HSSFSheet,HSSFCellStyle,HSSFFont,HSSFRow,HSSFCell等API,

看过一轮就知道怎么使用了,上面也有部分例子可以参考

这个接口写完以后,已经可以直接用url访问下载文件了,剩下的就得交给前端了(那块我就不是很懂了)

如果挂在云服务器上的话,需要将模板也传一份到自己制定的目录,然后将文件路径更改一下,才能使用

比如:

有更好的办法欢迎留言

java中自定义excel模板并且填充内容 相关文章

Java-Apache Commons Jexl3-动态表达式判断

!-- https://mvnrepository.com/artifact/org.apache.commons/commons-jexl3 -- dependency groupIdorg.apache.commons/groupId artifactIdcommons-jexl3/artifactId version3.1/version /dependency /** * Jexl表达式计算 */ @Test public void jexlUseFun(

【Java】String字符串格式化

一、前言 String.format() 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", "John"); ,下面将笔记整理并记录下来。 其实各个语言的字符串格式化方法都是相通的,你可以在其中找到你熟悉的语言

学习JAVA 的markdown第一天

Markdown学习 标题 +回车一级标题:##+回车二级标题:###+空格二级标题(最多二级标题 字体 Hellow,World!粗体 Hellow,World! 两边加两个星号+空格 Hellow,World!斜体 Hellow,World! 两边加一个星号+空格 Hellow,World斜体+加粗 Hellow,World! 两

javascript解决小数的加减乘除精度丢失的方案

原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3*1 = 0.2999999999等,下面列出可以完美求出相应精度的四种js算法 123456789101112131

Java 从0到Hello world

首先来看看这三个词:JDK、JRE、JVM JDK : Java Development Kit java开发者工具 包括JRE和JVM JRE : Java Runtime Environment java运行时环境 包含JVM JVM : Java Virtue Machine java虚拟机 卸载JDK(方便后来使用) 删除Java的安装目录 此电脑属性--高

Java操作MongoDB采用MongoRepository仓库进行条件查询

MongoDB与spring集成,操作mongo非常方便 主要有两种方式: 一、使用MongoTemplate 二、使用Spring Data Mongodb的MongoRepository 两者的区别就是第一种得自己写CURD语句,第二种非常方便基本不用自己写CURD语句 我之前一直使用的都是MongoTemplate,这次就

关于JVM

Java Virtual Machine JVM特性 平台无关性 Java虚拟机是实现Java平台无关性的关键,引入JVM后,Java语言在不同平台上运行时不需要重新编译。JVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。 JVM的位置 JVM的体系结构 栈、本地方法栈、程序计数

JAVA 从一个List中匹配另一个List的值并返回一个List

ListLookupValuesVO valuesVOList =new ArrayList(); LookupValuesVO a1=new LookupValuesVO(); a1.setLookupCode("CNY"); a1.setMeaning("人民币CNY"); valuesVOList.add(a1); LookupValuesVO a2=new LookupValuesVO(); a2.setLookupCode("EUR"); a2.setMea

你真的了解数据在堆栈中的存储方式吗

JavaScript数据类型分为: 分类 类型 原始数据类型(7种) Number、String、Boolean、Null、Undefined、Symbol、BigInt 引用数据类型 Object 先看两段代码 let num = 1;let data = num;data = 2;console.log('num : ' + num);//num : 1 let obj = { name : '

java返回json格式数据

返回String类型的数据 页面代码 !-- jQuery导入 --script src="js/jquery-2.1.0.min.js"/scriptscript type="text/javascript" $(function() {//失去焦点事件$("#username").blur(function() {//获取用户名的输入var username = $("#username").val();//cons

java读取excrl模板填充数据_java中自定义excel模板并且填充内容相关推荐

  1. java给excel填充数据_Java实现给Excel模板赋值(直接打开表格赋值或者用自定义了名称的单元格(一块区域)赋值)...

    1:需求 直接打开表格填充数据到模板后的效果可能出现表格重叠的问题 用自定义名称填充数据到模板后表格互不影响 Excel自身有一个"定义名称"的功能, (1)可以给任意的单元格定义 ...

  2. java 读取硬件设备发送数据_Java网络编程基础

    1.软件结构 C/S结构:全称为Client/Server结构,是指客户端和服务器结构.常见程序有QQ.迅雷等软件. B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构.常见浏 ...

  3. java 读取文件的指定行_Java中实现读取文件指定行

    Java中实现读取文件指定行 读取文件指定行要用到类LineNumberReader,它是跟踪行号的缓冲字符输入流,其基类是BufferedReader..它有两个构造方法: public LineN ...

  4. 如何用Java读取单元格的数据_Java读取Excel中的单元格数据

    目前网上能找到Web平台下的读取Excel表格中数据的两种比较好的方案:PageOffice好用开发效率高:POI免费.供大家参考,针对具体情况选择具体方案. 1. PageOffice读取excel ...

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

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

  6. html大学课程表制作,课程表模板空白表格(小/中/大学课程表模板excel) 中文免费版...

    课程表模板空白表格(小/中/大学课程表模板excel) 中文免费版 下载后可以根据自己的需求进行编辑,方便大家上课学习的安排,喜欢的朋友快来下载吧! 课程表介绍 课程表,是帮助学生了解课程安排的一种简 ...

  7. 6、jeecg 笔记之 自定义excel 模板导出(一)

    6.jeecg 笔记之 自定义excel 模板导出(一) 1.前言 jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi,尽管所导出的 excel 能满足大部分需求, 但总 ...

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

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

  9. java写入excel模板_java实现赋值excel模板,并在新文件中写入数据,并且下载

    /** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...

  10. java 从excel中读取数据_java如何从excel中读出数据

    package myexceltest; import jxl.*; import java.io.*; import jxl.write.*; /** * java读取Excel表格,拷贝.更新Ex ...

最新文章

  1. 《CSS揭秘》第五章:字体排印
  2. JAVA 动态代理学习记录
  3. [笔记] 大家一起来测试,benchmark起来(MySQL下的TPC-C,TPC-H,TPC-W)
  4. 记一次LAMP环境搭建
  5. 使用mybatis-generator自动生成代码的方法介绍及踩坑
  6. SAP Spartacus FeaturesConfig
  7. BPP 相关——01
  8. switchhosts 没有修改hosts的权限解决方案
  9. 小米手环无法模拟门卡_颜值与功能得到全面升级,小米手环4 NFC版上手体验
  10. JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理
  11. 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
  12. Win10教育版变为企业版
  13. 高性能图像放大算法——waifu2x方法
  14. PHP 调用百度人脸检测
  15. ARP协议详解(3)--arp欺骗
  16. Android AOSP 下载和编译
  17. 力学专业做cae需要学c语言吗,CAE工程师是需要掌握力学知识到何种程度_
  18. 泰国证券交易所预计将在本月批准5个ICO项目
  19. 搭建一个颜值超高的发卡网站
  20. 要点初见:从旅行青蛙开始的OpenCV3模板匹配功能探索

热门文章

  1. 2018国家网络安全宣传周系列漫画
  2. java语音api_java – 语音识别Api
  3. 2019年计算机考研408历年真题2009-2019下载免费下载
  4. linux git difftool,git difftool 详解
  5. win764位和32位有什么区别_win10系统32位和64位区别详解
  6. 3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)
  7. linux下c语言读写文件操作,Linux下C语言之文件操作
  8. 85 缓存, 验证码 序列化
  9. 制作ext4文件系统
  10. 微信小程序项目实例——投骰子