java读取excrl模板填充数据_java中自定义excel模板并且填充内容
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模板并且填充内容相关推荐
- java给excel填充数据_Java实现给Excel模板赋值(直接打开表格赋值或者用自定义了名称的单元格(一块区域)赋值)...
1:需求 直接打开表格填充数据到模板后的效果可能出现表格重叠的问题 用自定义名称填充数据到模板后表格互不影响 Excel自身有一个"定义名称"的功能, (1)可以给任意的单元格定义 ...
- java 读取硬件设备发送数据_Java网络编程基础
1.软件结构 C/S结构:全称为Client/Server结构,是指客户端和服务器结构.常见程序有QQ.迅雷等软件. B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构.常见浏 ...
- java 读取文件的指定行_Java中实现读取文件指定行
Java中实现读取文件指定行 读取文件指定行要用到类LineNumberReader,它是跟踪行号的缓冲字符输入流,其基类是BufferedReader..它有两个构造方法: public LineN ...
- 如何用Java读取单元格的数据_Java读取Excel中的单元格数据
目前网上能找到Web平台下的读取Excel表格中数据的两种比较好的方案:PageOffice好用开发效率高:POI免费.供大家参考,针对具体情况选择具体方案. 1. PageOffice读取excel ...
- Java使用自定义Excel模板填充数据
Java使用自定义Excel模板填充数据 上期我们说到使用POI简单的制作一个Excel,这里我们教林外一种方法,就是把Excel写好定为模板,直接填充数据. 老样子还是要添加POM依赖 <de ...
- html大学课程表制作,课程表模板空白表格(小/中/大学课程表模板excel) 中文免费版...
课程表模板空白表格(小/中/大学课程表模板excel) 中文免费版 下载后可以根据自己的需求进行编辑,方便大家上课学习的安排,喜欢的朋友快来下载吧! 课程表介绍 课程表,是帮助学生了解课程安排的一种简 ...
- 6、jeecg 笔记之 自定义excel 模板导出(一)
6.jeecg 笔记之 自定义excel 模板导出(一) 1.前言 jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi,尽管所导出的 excel 能满足大部分需求, 但总 ...
- java读取excrl模板填充数据,spring mvc 读取excel模板填充数据下载
需求: 将订单信息导出到excel中,存在excel模板,需要向其中添加数据. 技术选型: 对于excel操作,使用apache poi包.到maven repository找poi最新的发行包. 搜 ...
- java写入excel模板_java实现赋值excel模板,并在新文件中写入数据,并且下载
/** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...
- java 从excel中读取数据_java如何从excel中读出数据
package myexceltest; import jxl.*; import java.io.*; import jxl.write.*; /** * java读取Excel表格,拷贝.更新Ex ...
最新文章
- 《CSS揭秘》第五章:字体排印
- JAVA 动态代理学习记录
- [笔记] 大家一起来测试,benchmark起来(MySQL下的TPC-C,TPC-H,TPC-W)
- 记一次LAMP环境搭建
- 使用mybatis-generator自动生成代码的方法介绍及踩坑
- SAP Spartacus FeaturesConfig
- BPP 相关——01
- switchhosts 没有修改hosts的权限解决方案
- 小米手环无法模拟门卡_颜值与功能得到全面升级,小米手环4 NFC版上手体验
- JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理
- 浅析SqlServer简单参数化模式下对sql语句自动参数化处理以及执行计划重用
- Win10教育版变为企业版
- 高性能图像放大算法——waifu2x方法
- PHP 调用百度人脸检测
- ARP协议详解(3)--arp欺骗
- Android AOSP 下载和编译
- 力学专业做cae需要学c语言吗,CAE工程师是需要掌握力学知识到何种程度_
- 泰国证券交易所预计将在本月批准5个ICO项目
- 搭建一个颜值超高的发卡网站
- 要点初见:从旅行青蛙开始的OpenCV3模板匹配功能探索