java-下载excel
在java程序里面处理excel,我觉得比较方便的方式是先做出一个excel的模板(比如定义表头信息、表格名称等),然后根据这个模板往里面填充数据
我这里演示的是使用poi处理2007以上版本的excel表格
代码:
- String contextPath = session.getServletContext().getRealPath("/excel"); //获取模板路径
- XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(contextPath + "/schedule.xlsx")); //获取模板,并装成对应类
- XSSFSheet sheet = workbook.getSheetAt(0); //获取第一张表格
- int beginRow = 2;
- int endRow = 2 + doctorVOs.size();
- for(int i = 0;beginRow < endRow; beginRow++,i++){
- DoctorCountVO vo = doctorVOs.get(i);
- XSSFRow row = sheet.getRow(beginRow);
- if(row == null){
- row = sheet.createRow(beginRow);
- XSSFCell firstCell = row.createCell(0);
- firstCell.setCellValue(vo.getDoctorName());
- XSSFCell secondCell = row.createCell(1);
- secondCell.setCellValue(vo.getOutCallFullDay());
- XSSFCell thirdCell = row.createCell(2);
- thirdCell.setCellValue(vo.getOutCallHalfDay());
- XSSFCell forthCell = row.createCell(3);
- forthCell.setCellValue(vo.getAccompanyFullDay());
- XSSFCell fifthCell = row.createCell(4);
- fifthCell.setCellValue(vo.getAccompanyHalfDay());
- }
- }
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- workbook.write(os);
- workbook.close();
- return os.toByteArray();
方法最后会放回byte[]数组,controller层通过response放回给客户端
- byte[] bytes = scheduleService.userCountExport(contextPath, doctorVOs);
- if(bytes != null){
- response.setContentType("application/x-msdownload");
- response.setHeader("Content-Disposition", "attachment;filename=schedule.xlsx");
- response.setContentLength(bytes.length);
- response.getOutputStream().write(bytes);
- response.getOutputStream().flush();
- response.getOutputStream().close();
- }
java-下载excel的更多相关文章
- 【小坑】java下载excel文件
excel文件的导入导出是很常见的功能,这次做了个下载的功能,踩了一些坑,记下来避免以后重复踩…… 1.inputstream序列化问题 Could not write JSON document: ...
- java 下载Excel模板
前端: JSP: <div id="insertBtn" class="MyCssBtn leftBtn" onclick="download( ...
- java下载Excel模板(工具类)
一次文件下载记录 一次不成熟的文件下载操作记录,希望能对需要的人有所帮助. 1.前端代码 $("#downloadModel").click(function(){ var mod ...
- java下载excel,excel从数据库获取数据
<!-- poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId&g ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- java对excel表格的上传和下载处理
Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...
- java的excel表格的导出与下载
今天做一个java对excel表格的导出和下载的时候,从网络上搜寻了下载的模板,代码如下: 控制层: @RequestMapping(value = "excelOut_identifier ...
- JAVA web端JS下载excel文件
JSP代码如下: JSP端引入jquery.easyui.min.js库: <script type="text/javascript" src="<c:ur ...
- java实现下载excel功能
1,获取服务器现有excel文件 public List<Object[]> getObject(String filePath){ log.info("**文件路径为:**&q ...
- 360浏览器下载excel问题解决方式
亲们有没有碰到过今天我遇到的这件事. 如果使用简单的链接.或者get方式提交的表单,去下载excel,那么360浏览器就会有问题. 问题是:它没把我用java生成的excel表格下载,而是去把我的列表 ...
随机推荐
- Because the people who are crazy enough to think they can change the world, are the ones who do.
Here's to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square h ...
- svg text文字居中
<text x="100" y="100" text-anchor="middle" dominant-baseline=" ...
- FFMPEG 视频旋转设置
fmpeg -i inputfile.mp4 -vf "transpose=1" outputfile.mp4 0=90CounterCLockwise and Vertical ...
- js动态新增组合Input标签
var x = 1; function addlink() { var linkdiv = document.getElementById("add1_0"); if (linkd ...
- ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST【error收集】
之前一直没有注意一个事情, 关于设置archive归档路径设置的问题. 设置数据库为归档模式的命令: 1.首先要切换到mount状态: 2.执行alter system archivelog; 3.查 ...
- PHP Calendar 函数
PHP 5 Calendar 函数 函数 描述 cal_days_in_month() 针对指定的年份和历法,返回一个月中的天数. cal_from_jd() 把儒略日计数转换为指定历法的日期. ca ...
- Android studio 开发环境搭建
Android studio 开发环境搭建 一.环境: 下载java jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd ...
- 删除Excel中的打印预览留下的打印线
Excel 工作表打印后,会留有几条虚线打印线.如下图所示: 不少同学反映,他们尝试了很多操作却仍然无法消除.难道除了重新打开就没有别的办法了? 可以这样做: 在 Excel 2010 中,单 ...
- C++快速排序实现(quicksort)
quicksort:分治思想. 分解:数组A[p, r)被划分成两个子数组A[pq) 和 A[q+1, r),使得A[pq)中的每个元素小于等于A[q], A[q]也小于A[q+1r)中的每个元素.q ...
- Codeforces 704D Captain America
题意:平面上有n个点,每个点必须涂成红色和蓝色中的一种,花费各为r和b(对所有的点花费都一样).m条限制,每条限制形如"y=b这条直线上两种颜色的点的数目之差的绝对值不能超过c"或 ...