Java下载创建好的Excel模板
1.废话不多说,直接上源码
//从数据库取数据创建表格
private HSSFWorkbook exportStudentInfo(List<ExamStudentVo> studentList, List<ExamStudentVo> subjectName,
Integer testId) {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheetlist = wb.createSheet();
sheetlist.protectSheet(Constant.EXCEL_LOCK_PASSWORD);
HSSFRow row1 = sheetlist.createRow(0);
row1.createCell(0).setCellValue(Constant.EXCEL_ID);// 身份标识
row1.createCell(1).setCellValue(testId);
HSSFRow row2 = sheetlist.createRow(1);
sheetlist.setColumnWidth(3, 15 * 256);// 设置宽度
sheetlist.setColumnWidth(4, 12 * 256);
row1.setZeroHeight(true);// 隐藏行
sheetlist.setColumnHidden(1, true);// 隐藏列
org.apache.poi.hssf.usermodel.HSSFCellStyle unLockCellStyle = wb.createCellStyle();
unLockCellStyle.setLocked(false);
row2.createCell(0).setCellValue("序号");
row2.createCell(1).setCellValue("学生ID");
row2.createCell(2).setCellValue("姓名");
row2.createCell(3).setCellValue("年级");
row2.createCell(4).setCellValue("班级");
int t = 5;
for (int i = 0; i < subjectName.size(); ++i) {
row1.createCell(t).setCellValue(subjectName.get(i).getSubjectId());
row2.createCell(t).setCellValue(subjectName.get(i).getSubjectName());
t++;
}
int temRow = 2; for (int i = 0; i < studentList.size(); ++i) {
HSSFRow row3 = sheetlist.createRow(temRow);
if (StringUtil.isNullOrEmpty(studentList.get(i))) {
continue;
}
row3.createCell(0).setCellValue(i + 1);
row3.createCell(1).setCellValue(studentList.get(i).getStudentId());
row3.createCell(2).setCellValue(studentList.get(i).getStudentName());
row3.createCell(3)
.setCellValue(studentList.get(i).getStageName() + "部" + studentList.get(i).getEntranceYear() + "级");
row3.createCell(4).setCellValue(studentList.get(i).getClassName());
temRow++;
int tem = 5;
for (int j = 0; j < subjectName.size(); ++j) {
row3.createCell(tem).setCellValue(HSSFCell.CELL_TYPE_STRING);
row3.createCell(tem).setCellStyle(unLockCellStyle);
tem++;
}
}
return wb;
}
2.下载
HSSFWorkbook wb = importScoreService.exportTestInfo(eq.getTestId());
String testName = importScoreService.getTestName(eq.getTestId());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
wb.write(byteArrayOutputStream);
testName = StringUtils.deleteWhitespace(testName);
String dateTime = DateFormatUtils.format(new Date(), "yyyyMMddHHmm");
//设置文件标题
String outFile = "学生成绩/" + dateTime +"/" + testName + ".xls";
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//对文件名编码
outFile = response.encodeURL(new String(outFile.getBytes("gb2312"), "iso8859-1"));
//使用Servlet实现文件下载的时候,避免浏览器自动打开文件
response.addHeader("Content-Disposition", "attachment;filename=" + outFile);
//将流写进response输出流中
ServletOutputStream outputstream = response.getOutputStream();
byteArrayOutputStream.writeTo(outputstream);
byteArrayOutputStream.close();
outputstream.flush();
3.下载完毕
Java下载创建好的Excel模板的更多相关文章
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- java实现赋值excel模板,并在新文件中写入数据,并且下载
/** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...
- java 下载Excel模板
前端: JSP: <div id="insertBtn" class="MyCssBtn leftBtn" onclick="download( ...
- java实现excel模板导出
一. 准备工作 1. 点击此下载相关开发工具 2. 将poi-3.8.jxls-core-1.0两个jar包放到工程中,并引用 3. 将excel模板runRecord.xls放到RunRecordB ...
- vue Excel导入,下载Excel模板,导出Excel
vue Excel导入,下载Excel模板,导出Excel vue Excel导入,下载Excel模板 <template> <div style="display: ...
- NPOI之使用EXCEL模板创建报表
因为项目中要用到服务器端创建EXCEL模板 无法直接调用EXCEL 查了下发现NPOI很方便很简单就实现了 其中走了点弯路 第一次弄的时候发现输出的值是文本不是数字型无法直接计算公式 然后又发现打开报 ...
- PPT、Word、Excel模板免费下载
本篇文章可能只有寥寥数字,但他的作用可能很大,可能帮助到很多朋友.本人喜欢搜集一些资源,也爱免费分享,因为好东西我藏不住,总感觉分享出来更快乐. 网址:https://www.bangongziyua ...
- JAVA生成EXCEL模板
JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...
- 下载excel模板,导入数据时需要用到
页面代码: <form id="form1" enctype="multipart/form-data"> <div style=" ...
随机推荐
- PHP Simple HTML DOM解析器使用入门
http://www.cnphp.info/php-simple-html-dom-parser-intro.html 一直以来使用php解析html文档树都是一个难题.Simple HTML DOM ...
- 最强AngularJS资源合集
AngularJS是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用方面的不足,其通过使用指令(directives)结构来扩展HTML词汇,使开发者可以使用HTML来 ...
- sql server 内存初探
一. 前言 对于sql server 这个产品来说,内存这块是最重要的一个资源, 当我们新建一个会话,相同的sql语句查询第二次查询时间往往会比第一次快,特别是在sql统计或大量查询数据输出时,会有这 ...
- SQL2008全部数据导出导入两种方法
方法一:生成脚本导出导入sql2008全部数据第一步,右键要导出的数据库,任务--生成脚本 第二步,在设置脚本编写选项处,点击--高级(A),选择要编写脚本的数据的类型为:架构和数据 如果找不到 要编 ...
- [Poi2012]A Horrible Poem BZOJ2795
分析: 这是今天下午的考试题,推了2个小时,考试中A掉了 首先,循环串通过字符串hash可以O(1)判断:get_hash(l,r-len)==get_hash(l+len,r);显然可证. 我们其次 ...
- Django中用户权限模块
Django中用户权限模块 1 auth模块 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理. auth可以和admin模块配合使用, 快速建立网站的管理系 ...
- oracle服务的一些问题,先发2个,以后慢慢添加~~
OracleOraDb11g_home1TNSLister服务启动后停止 解决办法: 1. 修改文件C:\app\zhuwei\product\11.1.0\db_1\NETWORK\ADMIN\li ...
- appium+python+eclipse 自动化测试框架构建!
经过几天的慢慢研究,现将所需用的自动化框架进行了构建,在后期的代码编写中,直接在框架中套用编写对应的module.case等即可,以此来简化测试方式,提高代码的编写效率与规范 基本的架构设计流程图,如 ...
- c# 基于文件系统实现的队列处理类
现实业务中经常遇到需要队列处理的问题. 问题场景: 客户端记录设备运行数据,传输给服务器.在传输中可能存在延迟或中断情况.当中断时,系统传输数据可能因为无法传输或电脑重启,会导致服务器数据记录不连续. ...
- typecho设置文章密码保护
在别人博客看到了一个需要输入密码才能访问文章的功能,像下图一样 typecho也是有这个功能,不需要插件就可以实现.在编辑文章时,右边高级选项,公开度里有个密码保护可以选择 效果图 不过这样的界面不是 ...