Excel 写入复制模板,写入数据并下载
/**
* 生成excel并下载
*/
public void exportExcel(){
File newFile = createNewFile();
//File newFile = new File("d:/ss.xls");
//新文件写入数据,并下载*****************************************************
InputStream is = null;
HSSFWorkbook workbook = null;
HSSFSheet sheet = null;
try {
is = new FileInputStream(newFile);
workbook = new HSSFWorkbook(is);
//获取第一个sheet
sheet = workbook.getSheetAt(0);
} catch (Exception e1) {
e1.printStackTrace();
}
if(sheet != null){
try {
//写数据
FileOutputStream fos = new FileOutputStream(newFile);
HSSFRow row = sheet.getRow(4);
HSSFCell cell = row.getCell(1);
System.out.println(cell.getStringCellValue());
cell.setCellValue("ssssssssssssssssssssssssssssssssssssssssssss");
workbook.write(fos);
fos.flush();
fos.close();
//下载
InputStream fis = new BufferedInputStream(new FileInputStream(newFile));
HttpServletResponse response = this.getResponse();
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("采购合同"+System.currentTimeMillis()+".xls", "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=\""+ newName + "\"");
response.addHeader("Content-Length", "" + newFile.length());
toClient.write(buffer);
toClient.flush();
}
catch(Exception e) {
e.printStackTrace();
}finally {
try {
if (null != is) {
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//删除创建的新文件
//this.deleteFile(newFile);
}
/**
* 复制文件
*
* @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) {
e.printStackTrace();
}
}
/**
* 读取excel模板,并复制到新文件中供写入和下载
* @return
*/
public File createNewFile(){
//读取模板,并赋值到新文件************************************************************
//文件模板路径
String path = this.getRequest().getRealPath(SystemConfig.FILETEMPLATE);
String fileName="purchaseContract.xls";
File file=new File(path+"/"+fileName);
//保存文件的路径
String realPath = ServletActionContext.getServletContext().getRealPath(SystemConfig.UPLOAD_FILE_DIR);
//新的文件名
String newFileName = "采购合同"+System.currentTimeMillis() + ".xls";
//判断路径是否存在
File dir = new File(realPath);
if(!dir.exists()){
dir.mkdirs();
}
//写入到新的excel
File newFile = new File(realPath, newFileName);
try {
newFile.createNewFile();
//复制模板到新文件
fileChannelCopy(file, newFile);
} catch (Exception e) {
e.printStackTrace();
}
return newFile;
}
/**
* 下载成功后删除
*
* @param files
*/
private void deleteFile(File... files) {
for (File file : files) {
if (file.exists()) {
file.delete();
}
}
}
Excel 写入复制模板,写入数据并下载相关推荐
- poi读取excel多层表头模板写入数据并导出
poi读取excel多层表头模板写入数据并导出 这两天刚好写excel,写了一份自定义表头的,写了一份模板的,这里展示一份读取excel模板写入数据并导出的 //title excel的名称 head ...
- 无插件,无com组件,利用EXCEL、WORD模板做数据导出(一)
本次随笔主要讲述着工作中是如何解决数据导出的,对于数据导出到excel在日常工作中大家还是比较常用的,那导出到word呢,改如何处理呢,简单的页面导出问题应该不大,但是如果是标准的公文导出呢,要保证其 ...
- C#基于Npoi通过特性的方式导出简单数据到Excel或基于特性以及基于Excel模板导出数据到Excel以及从Excel中把数据导入到对象中
导出数据到Excel表格以及从Excel表格中读取数据是我们日常开发很多情况都会遇到的,这里或许只是导出一些简单的数据到excel,这里或许会按照一定的模板导出数据到excel,这里也可能需要从Exc ...
- java poi 模板 导出_java poi 从服务器下载模板写入数据再导出
最近写了一个,Excel 的 写入和导出. 需求是这样的. 在新建合同的时候,会有导出合同的数据, 导出的模板是固定的,,需要在模板里面写入合同的信息. first : 下载模板 ...
- PHPExcel 写入数据并下载 excel 或 保存至 excel 文件
下载 点击下载 PHPExcel 包 代码 // 第一步 - 准备下载数据require_once "/vendor/PHPExcel/PHPExcel.php";// 导出数据 ...
- java pdf 报表_关于Java向PDF模板写入数据,以及java制作pdf报表的问题
1.关于java向PDF模板写入数据 写的特别全一步一步来就行. (1)首先下载一个pdf编辑工具Adobe Acrobat DC (2)准备一个pdf模板文件(你可以把自己创建一个只有表头没有内容的 ...
- EasyPoi的excel模板预览与下载、导出简单/复杂数据
官方文档地址:easypoi官网,官方仅供参考,部分描述有问题 excel模板预览 准备工作 事先将整理好的excel模板存在项目中,如图 excel模板预览代码 @GetMapping(" ...
- JS操作Excel读取和写入(模板操作)
前一段时间一直在做报表,所以肯定会用到Excel的操作,但是在网上查阅资料有关JS操作excel较少,有的话,也都是老生常谈或很零碎的一些东西.本人是在实际项目中摸索出,JS读写Excel(模板)数据 ...
- C# 读取Excel文件,并写入word模板文档
1.该程序是一个win32控制台程序 2.开发工具是VS2010,office是2013版的 3.需要添加以下引用 4 在C盘保存.dot模板,样式如下 6.excel中的数据格式,最好都设置为常规. ...
最新文章
- Lungo transition in reverse direction. 反转效果
- mysql near_完美解决 ERROR 1064 (42000): You have an error in your SQL syntax ... near …
- Charle抓包与wireshark使用
- leetcode 752. Open the Lock | 752. 打开转盘锁(BFS)
- spark集群详细搭建过程及遇到的问题解决(三)
- JMeter4.0以上 分布式测试报错 server failed start Listen failed on port
- c语言 获取可用内存大小,C语言实现获取内存信息并输出的实例
- Jenkins持续集成学习-搭建jenkins问题汇总
- echo -e <<EOF $()三种操作的意义
- 4位格雷码的顺序编码_格雷码的编码和译码算法.doc
- 项目管理助力中国企业发展
- 高频电子线路资料强力推荐!
- Ubuntu下载工具uGet+aira2
- g7108 android5,三星G7108V移动4G版一键Root权限获取及USB驱动
- 计算机巧用剪纸做画册教案,大班剪纸教案 老虎
- ❤520给她准备的情人节礼物~html+css+javascript漫天飞雪3D相册(含音乐)
- Telnet 发电子邮件 E-mail
- 华三路由器配置mstp多生成树协议
- 如何在windows11系统中打开ie11浏览网页
- 十七、网上商城项目(6)