java中poi进行execl导出
首先贴出最终导出的execl截图吧:
前台界面如下:
点击导出时,为其按钮的onclick事件添加exportDate()函数:
- function exportDate(){
- var begin_Date=$('#dateid').datebox('getValue');
- document.getElementById("exportForm").action="../mobileManage/export.do?begin_Date="+begin_Date;
- document.getElementById("exportForm").submit();
- }
在后台export.do的代码如下:
- @RequestMapping("export.do")
- public void exportExecl(HttpServletRequest request,
- HttpServletResponse response) {
- String beginDate = request.getParameter("dateid")+"-01";
- int maxDay=getCurrMonthDays(beginDate);
- List<MobileManage> list = getDataList(beginDate);
- String title =beginDate.substring(0, 4)+"年"+beginDate.subSequence(5, 7)+"月"+ "员工工作详情表";
- String[] headers1 = new String[33];// 表头1数组 日期,1,2,3...
- String[] headers2 = new String[31];// 表头2数组 星期,一二三...
- headers1[0]="类型";
- headers1[1]="姓名";
- for (int i = 1; i <=maxDay; i++) {
- String date=beginDate.substring(0,8)+(i<10?"0"+i:i+"");
- String week=getWeek(date);
- headers1[i+1]=i+"";
- headers2[i-1]=week;
- }
- HSSFWorkbook workbook = new HSSFWorkbook();// 生成一个工作簿
- HSSFSheet sheet = workbook.createSheet(title);//创建一个表
- HSSFCellStyle style = workbook.createCellStyle();//创建一个居中格式
- style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平
- style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
- sheet.setDefaultColumnWidth(5);//设置默认列宽
- sheet.setColumnWidth(0, 10* 256);//设置第一、第二列列宽
- sheet.setColumnWidth(1, 10 * 256);
- sheet.setDefaultRowHeight((short)300);//设置默认行高
- HSSFRow row = sheet.createRow(0);//创建表头一
- sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0)); //设置跨行
- sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
- HSSFRow rowWeek=sheet.createRow(1);//创建表头二
- HSSFCell cell = null;
- //给表头填充数据
- for (int i = 0; i < headers1.length; i++) {
- cell = row.createCell(i);
- cell.setCellValue(headers1[i]);
- cell.setCellStyle(style);
- }
- for (int i = 0; i < headers2.length; i++) {
- cell=rowWeek.createCell(i+2);
- cell.setCellValue(headers2[i]);
- cell.setCellStyle(style);
- }
- // 遍历集合数据,产生数据行
- MobileManage manage = null;
- int index = 1;
- // 循环写入行
- for (int i = 0; i < list.size(); i++) {
- index++;
- row = sheet.createRow(index);//从第二行开始填充数据(第零和一行是表头)
- manage = list.get(i);
- cell = row.createCell(0);// 类型
- cell.setCellValue(manage.getType());
- cell = row.createCell(1);//姓名
- cell.setCellValue(manage.getName());
- for (int j = 0; j < headers2.length; j++) {//项目编码
- cell=row.createCell(j+2);
- cell.setCellValue(manage.getDateCodes()[j]==null?"":manage.getDateCodes()[j].getCode());
- }
- }
- response.reset();
- try {
- title=new String(title.getBytes("gb2312"),"iso8859-1");//设置表格名时中文乱码,进行转码
- } catch (UnsupportedEncodingException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename="
- + title + ".xls");
- try {
- OutputStream outputStream = response.getOutputStream();
- workbook.write(outputStream);
- outputStream.flush();
- outputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return;
- }
我在网上看到很多人说这里面涉及到设置的一般都要加个short强转,但是我这样写在火狐谷歌导出并没有什么问题,当然也许不同浏览器等或许会出现问题,以后要是遇到了再说吧.
java中poi进行execl导出的更多相关文章
- Java使用POI实现数据导出excel报表
Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...
- java使用poi将html导出word,默认打开页面视图
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:o ...
- Java使用poi对Execl简单_读和写_操作
1 /** 一.简单读取Execl的步骤: * 1.通过流来读取Execl并存放到内存中: * 2.通过WorkbookFactory工作簿工厂来读取内存中存放的execl文档流并创建出一个工作簿 * ...
- Java使用poi对Execl简单操作_总结
poi是Apache组织给开发者提供一套操作office(Execl,Word,PowerPoint)等Java API,开发者通过Poi API可以快速的操作office办公软件,以上3篇博文只是一 ...
- java使用POI将数据导出放入Excel
本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术. POI介绍 使用spring boot导入相关依赖 获取数据(自行处理) 完整代码实例:创建e ...
- java 中Excel的导入导出
部分转发原作者https://www.cnblogs.com/qdhxhz/p/8137282.html雨点的名字 的内容 java代码中的导入导出 首先在d盘创建一个xlsx文件,然后再进行一系列 ...
- Java利用POI实现导入导出Excel表格示例代码
转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...
- JAVA 通过POI 模版,导出excel
如有不足,欢迎指正,谢谢 ! 1.Maven引入 POI jar包.模版和结果文件.rar下载 <dependency> <groupId>org.apache.poi< ...
- java中poi解析excel(兼容07版本以上及以下:.xls和.xlsx格式)
package com.genersoft.cbms.ysbz.ExcelDr.cmd; import com.genersoft.cbms.ysbz.ExcelDr.dao.ExcelDrDao; ...
随机推荐
- TPO-21 C1 Find a building for orientation
TPO-21 C1 Find a building for orientation 第 1 段 1.Listen to a conversation between a student and a p ...
- SQL Server存储过程用法介绍
存储过程其实就是已预编译为可执行过程的一个或多个SQL语句. 通过调用和传递参数即可完成该存储过程的功能. 前面有介绍过存储过程的一些语法,但是没有详细示例,今天我们来一起研究一下存储过程. 提高性能 ...
- 5. 使用Flask蓝图(blueprint)
一直到现在都没有怎么写代码,可能更得比较慢. 作业回顾 先来看一下文章4的作业吧,使用logbook的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标 ...
- Hadoop源码编译环境搭建
准备工具: maven 3.0.0版本或者更高版本(配置中心库) protocbuff 2.5.0 http://www.zlib.net/ git bash(Windows环境可以用此工具执行编译命 ...
- Ubuntu下LimeSDR Mini使用说明
本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 LimeSDR链接:https://item.taobao.com/item.htm?spm=a230r.1 ...
- awk之close函数
echo "21 2 " | awk '{ first[NR]=$ second[NR]=$ }END{ print "======打印第1列并排序:========== ...
- lspci命令详解
基础命令学习目录首页 最近经常用到 lspci -nn | grep Eth 命令,需要学习下PCI总线,找到一篇文章,虽然也是转载,但写的较清晰,再次转载下. http://blog.csdn.ne ...
- The serializable class XXX does not declare a static final serialVersionUID field of type long的警告
原文: http://blog.csdn.net/ultrakang/article/details/41820543
- Daily Scrum9 11.13
昨天的任务已完成. 今日任务: 姓名 今日任务 时长 徐钧鸿 测试SQL包里的代码 2h 张艺 继续搭建还没搭建完的框架 修复bug 2h 黄可嵩 继续进行搜索响应编写 2h 徐方宇 搭建框架 修改b ...
- BUAAMOOC-Alpha版本发布说明
BUAAMOOC-Alpha版本发布说明 本说明为BUAAMOOCv1.0版发布说明. 软件截图 上届软件截图 可以看到上届的界面做的很简陋,对于登录.查看课程列表.观看视频等操作需要跳转多个页面,视 ...