poi 技术动态更新 Excel模板内容,动态更新内容
1.控制器方法
private URL base = this.getClass().getResource("");
/**
* 流拍之后,可以下载询价单
*
* @param id 拍卖id
* @param response
*/
@RequestMapping(value="/inquiryDownLoad",method = RequestMethod.GET)
@ResponseBody
public void inquiryDownLoad(String aucId,HttpServletResponse response) {
//日志记录
if (logger.isDebugEnabled()) {
logger.debug("inquiryDownLoad, aucLotId ", aucId);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
AucLot aucLot = aucLotRepository.findOne(aucId);
if(aucLot!=null){
SysUser sysUser=sysUserRepository.findOne(aucLot.crtUserId());
AucPrice aucPrice=aucPriceListService.findAucLotCurrentPrice(aucId);
try {
//获取模板文件的目录地址
String fileDir = new File(base.getFile(), "../../../../../../doc/").getCanonicalPath();
//获取模板文件
File demoFile=new File(fileDir + "/inquiryPrice.xls");
//这里传入一个空模板
FileInputStream in = new FileInputStream(demoFile);
//创建Excel的 JAVA 对象
HSSFWorkbook book = new HSSFWorkbook(in);
HSSFSheet sheet = book.getSheetAt(0);//获取Excel的第一页内容
sheet.protectSheet("123456");//设置Excel编辑密码,没有密码不可以编辑
HSSFRow row = null;
HSSFCell cell=null;
//动态更新特定坐标位置的值
//公司留存 拍卖开始时间
row=sheet.getRow(6);
cell=row.getCell(12);
cell.setCellValue(sdf.format(aucLot.startTime()));
//公司留存委托人姓名and手机号
row=sheet.getRow(9);
cell=row.getCell(11);
cell.setCellValue(aucLot.crtUserName());
row=sheet.getRow(11);
cell=row.getCell(11);
if(sysUser!=null && sysUser.mobile()!=null){
cell.setCellValue(sysUser.mobile().replace(sysUser.mobile().substring(3, 8), "****"));
}
//委托人留存
row=sheet.getRow(35);
cell=row.getCell(11);
cell.setCellValue(aucLot.crtUserName());
row=sheet.getRow(37);
cell=row.getCell(11);
if(sysUser!=null && sysUser.mobile()!=null){
cell.setCellValue(sysUser.mobile().replace(sysUser.mobile().substring(3, 8), "****"));
}
//拍品保留价and最高出价
row=sheet.getRow(21);
cell=row.getCell(29);
cell.setCellValue(aucLot.reservePrice().doubleValue());
row=sheet.getRow(22);
cell=row.getCell(29);
cell.setCellValue(aucPrice.price().doubleValue());
//设置下载题头
response.setContentType("application/xls");
String name = java.net.URLEncoder.encode(aucLot.goodsNo()+"测试.xls", "UTF8");
response.addHeader("Content-Disposition", "attachment; filename=" + name);
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
ServletOutputStream servletOS = response.getOutputStream();
book.write(ostream);
servletOS.write(ostream.toByteArray());
servletOS.flush();
servletOS.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
poi 技术动态更新 Excel模板内容,动态更新内容的更多相关文章
- POI技术实现对excel的导出
需求:客户端传来两个参数,当前页码和每页的条数,根据传来的参数实现对数据的导出 1.导入依赖 <!-- 报表相关 --> <dependency> <groupId> ...
- 替换excel模板中的内容并使用JavaMail发送邮件
由于在公司工作,常年出差,每天都要以日报的形式向公司汇报当天的工作内容.而日报的内容大体上就只有当天工作的主要内容时变化的,其余的都是不变 的. 而我的电脑刚打开excel有点卡,因此决定使用Java ...
- poi读取Excel模板并修改模板内容与动态的增加行
有时候我们可能遇到相当复杂的excel,比如表头的合并等操作,一种简单的方式就是直接代码合并(浪费时间),另一种就是写好模板,动态的向模板中增加行和修改指定单元格数据. 1.一个简单的根据模板shee ...
- 利用POI 技术动态替换word模板内容
项目中需要实现一个功能,动态替换给定模板里面的内容,生成word文档提供下载功能. 中间解决了问题有: 1.页眉的文档logo图片解决,刚开始的时候,HWPFDocument 对象无法读取图片对象(已 ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- Excel模板导出之动态导出
说明 目前Magicodes.IE已支持Excel模板导出时使用JObject.Dictionary和ExpandoObject来进行动态导出,具体使用请看本篇教程. 本功能的想法.部分实现初步源于a ...
- poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算
/** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...
- POI根据EXCEL模板,修改内容导出新EXCEL (只支持HSSF)
package excelPoiTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutput ...
- MFC编辑框接收数据动态更新与刷新方法代码示例-如何让编辑框内容实时更新
MFC编辑框接收数据动态更新与刷新方法代码示例-如何让编辑框内容实时更新 关键代码: //发送数据通知 //from txwtech@163.com LRESULT CCommSampleDlg::O ...
随机推荐
- 读书笔记|Windows 调试原理学习|持续更新
关于调试方面的学习笔记,主要来源于<软件调试>的读书笔记和梦织未来论坛的视频教程 1.调试器使用一个死循环监听调试信息. DebugActiveProcess(PID);while(TRU ...
- MVC – 15.路由机制
15.1.路由检测插件 - RouteDebug 15.2.路由约束 15.3.命名路由 15.4.验证码 15.5.ASP.NET MVC 与 三层架构 15.6.Area区域 15.6.1.尝试将 ...
- wordpress后台加载速度异常缓慢排查记录(原创)
原因在于在function.php函数中加入了下面的代码导致了缓慢: //停用版本更新通知remove_action('load-update-core.php', 'wp_update_themes ...
- day1 str字符串常用方法
字符串是编程中常用的类型,字符型在内存中是以单个形式存储的,比如name = "alex",在内存中存储的形式为["a","l"," ...
- web学习测试环境
ref:https://www.owasp.org/index.php/OWASP_Vulnerable_Web_Applications_Directory_Project/Pages/Offlin ...
- Servlet技术——常用的类和接口
Servlet是运行在服务器端的Java应用程序,由Servlet容器对其进行管理. 当用户对容器发送HTTP请求时,容器将通知相应的Servlet对象进行处理,完成用户和程序之间的交互. 在Serv ...
- Bzoj5188/洛谷P4185 [Usaco2018 Jan]MooTube(并查集)
题面 Bzoj 洛谷 题解 最暴力的方法是直接判两个点之间的路径最小值是否\(\geq k\),用\(Dijkstra\)可以做到该算法最快效率,但是空间复杂度始终是\(O(n^2)\)的,会\(ML ...
- XSS漏洞自动化攻击工具XSSer
XSS漏洞自动化攻击工具XSSer XSS是Web应用常见的漏洞.利用该漏洞,安全人员在网站注入恶意脚本,控制用户浏览器,并发起其他渗透操作.XSSer是Kali Linux提供的一款自动化XSS ...
- GC参数
串行收集器 串行收集器(Serial),是一个相对比较老的回收器,但是它的效率在回收器中相对较好,并且比较稳定.他在进行垃圾回收的过程中,使得应用暂时被挂起,然后启用单条线程去做垃圾回收,所以在进行垃 ...
- 【BZOJ 4555】 4555: [Tjoi2016&Heoi2016]求和 (NTT)
4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 315 Solved: 252 Des ...