使用POI实现数据导出Excel表格
package cn.sh.bzt.kwj.action; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import cn.sh.bzt.base.action.BaseAction; import cn.sh.bzt.base.page.Pager; import cn.sh.bzt.base.page.PagerHelp; import cn.sh.bzt.kwj.pojo.TEnterprise; import cn.sh.bzt.kwj.pojo.TOrgnization; import cn.sh.bzt.kwj.pojo.TUser; import cn.sh.bzt.kwj.service.IUserService; import cn.sh.bzt.kwj.service.TotalFormService; /** * 统计报表--行政统计 * @author 姚智韧 * */ @SuppressWarnings("serial") public class TotalFormAction extends BaseAction { // private Log log = LogFactory.getLog(TEnterpriseIdAction.class);// 日志类 private List<TEnterprise> list = null; private TEnterprise enterprise = new TEnterprise(); private String projectCode = "33"; private String licenseName = "口岸卫生许可证核发 "; private String childNodeCode = "3300"; private String childNodeName = "无"; public OutputStream out; public TEnterprise getEnterprise() { return enterprise; } public void setEnterprise(TEnterprise enterprise) { this.enterprise = enterprise; } private TotalFormService totalFormService; public TotalFormService getTotalFormService() { return totalFormService; } @Resource(name = "totalFormServiceImpl") public void setTotalFormService(TotalFormService totalFormService) { this.totalFormService = totalFormService; } private IUserService userService; public IUserService getUserService() { return userService; } @Resource(name = "userServiceImpl") public void setUserService(IUserService userService) { this.userService = userService; } /** * 查询行政统计数据 * * @return */ public String findAllTotalForm() { try { TUser user = (TUser) request.getSession().getAttribute( "USER_IN_SESSION"); request.setAttribute("userLoginName", user.getUserLoginName()); TOrgnization toi = new TOrgnization(); Integer i = user.getTOrgnization().getOrgId(); if (i != null) { toi = userService.getAllOrgList(i); } request.setAttribute("orgName", toi.getOrgName()); request.getSession().setAttribute("companyName", ""); request.getSession().setAttribute("stDate", ""); request.getSession().setAttribute("endDate",""); // 总行数 int totalRows = totalFormService.getTotalFormCount(enterprise); System.out.println("总行数totalRows----->" + totalRows); Pager pager = PagerHelp.getPager(request, totalRows); pager.setUrl("tjbb/findAllTotalForm.action"); list = new ArrayList<TEnterprise>(); list = ListUtils(enterprise, pager); System.out.println("list----->" + list.get(0)); request.setAttribute("ALL_Total_LIST", list); request.setAttribute("PAGE", pager); return SUCCESS; } catch (Exception e) { request.setAttribute("ERROR_CAUSE", "数据库操作失败"); return ERROR; } } /** * 按条件查询 * * @return */ public String findByCondition() { try { TUser user = (TUser) request.getSession().getAttribute( "USER_IN_SESSION"); request.setAttribute("userLoginName", user.getUserLoginName()); TOrgnization toi = new TOrgnization(); Integer i = user.getTOrgnization().getOrgId(); if (i != null) { toi = userService.getAllOrgList(i); request.setAttribute("orgName", toi.getOrgName()); } String filingdate1 = request.getParameter("enterprise.filingdate1"); System.out.println("filingdate1------->" + filingdate1); String filingdate2 = request.getParameter("enterprise.filingdate2"); System.out.println("filingdate2------->" + filingdate2); String companyName = request.getParameter("enterprise.companyName"); enterprise.setFilingdate1(convertFormat(filingdate1)); enterprise.setFilingdate2(convertFormat(filingdate2)); request.getSession().setAttribute("companyName", companyName); request.getSession().setAttribute("stDate", filingdate1); request.getSession().setAttribute("endDate",filingdate2); // 总行数 int totalRows = totalFormService.getTotalFormCount(enterprise); System.out.println("总行数totalRows----->" + totalRows); Pager pager = PagerHelp.getPager(request, totalRows); list = new ArrayList<TEnterprise>(); list = ListUtils(enterprise, pager); request.setAttribute("ALL_Total_LIST", list); request.setAttribute("PAGE", pager); System.out.println("list---->" + list.get(0)); return SUCCESS; } catch (Exception e) { request.setAttribute("ERROR_CAUSE", "数据库操作失败"); e.printStackTrace(); return ERROR; } } /** * 导出数据到Excel * @param model * @throws IOException * @throws Exception */ public String exportDataToExcel() throws IOException { try { response.setCharacterEncoding("UTF-8"); String filename = "统计报表-行政统计.xls"; HSSFWorkbook wb = new HSSFWorkbook(); response.setContentType("application/x-download"); try { response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("gbk"), "iso-8859-1")); } catch (Exception e1) { e1.printStackTrace(); } HSSFSheet sheet = wb.createSheet("行政统计一"); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow((int) 0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFFont font = wb.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 16); HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); HSSFCell cell = row.createCell((short) 0); cell.setCellValue("许可项目代码"); cell.setCellStyle(style); cell = row.createCell((short) 1); cell.setCellValue("许可项目代码"); cell.setCellStyle(style); cell = row.createCell((short) 2); cell.setCellValue("子项代码"); cell.setCellStyle(style); cell = row.createCell((short) 3); cell.setCellValue("子项名称"); cell.setCellStyle(style); cell = row.createCell((short) 4); cell.setCellValue("许可证书编号"); cell.setCellStyle(style); cell = row.createCell((short) 5); cell.setCellValue("许可项目及范围"); cell = row.createCell((short) 6); cell.setCellValue("发证日期"); cell.setCellStyle(style); cell = row.createCell((short) 7); cell.setCellValue("有效期至"); cell.setCellStyle(style); cell = row.createCell((short) 8); cell.setCellValue("生产地址"); cell.setCellStyle(style); cell = row.createCell((short) 9); cell.setCellValue("发证机构 "); cell.setCellStyle(style); cell = row.createCell((short) 10); cell.setCellValue("发证机构代码"); cell.setCellStyle(style); cell = row.createCell((short) 11); cell.setCellValue("被许可机构"); cell.setCellStyle(style); cell = row.createCell((short) 12); cell.setCellValue("被许可机构代码(证件号码) "); cell.setCellStyle(style); cell = row.createCell((short) 13); cell.setCellValue("被许可机构行政区划 "); cell.setCellStyle(style); String filingdate1 = (String) request.getSession().getAttribute("stDate"); System.out.println("filingdate1------->" + filingdate1); String filingdate2 = (String) request.getSession().getAttribute("endDate"); System.out.println("filingdate2------->" + filingdate2); String companyName = (String) request.getSession().getAttribute("companyName"); System.out.println("companyName------->" + companyName); enterprise.setFilingdate1(convertFormat(filingdate1)); enterprise.setFilingdate2(convertFormat(filingdate2)); enterprise.setCompanyName(companyName); list = new ArrayList<TEnterprise>(); list = totalFormService.findExportData(enterprise); for (int i = 0; i < list.size(); i++) { row = sheet.createRow((int) i + 1); TEnterprise enterprise = (TEnterprise) list.get(i); String managescope = enterprise.getApprovalmanagescope(); String managescope1 = null; if(managescope!=null){ managescope1 = managescope.substring(1, managescope.length()-1); }else{ managescope1 = managescope; } // 第四步,创建单元格,并设置值 row.createCell((short) 0).setCellValue(projectCode); //许可项目代码 row.createCell((short) 1).setCellValue(licenseName); //许可项目代码 row.createCell((short) 2).setCellValue(childNodeCode); //子项代码 row.createCell((short) 3).setCellValue(childNodeName);//子项名称 row.createCell((short) 4).setCellValue(enterprise.getLicenseCode()); //许可证书编号 row.createCell((short) 5).setCellValue(managescope1); //许可项目及范围 row.createCell((short) 6).setCellValue(enterprise.getJdTime()); //发证日期 row.createCell((short) 7).setCellValue(enterprise.getInDate()); //有效期至 row.createCell((short) 8).setCellValue(enterprise.getBusinessAddress()); //生产地址 row.createCell((short) 9).setCellValue(enterprise.getEmbranchment());//发证机构 row.createCell((short) 10).setCellValue(enterprise.getOrgCode()); //发证机构代码 row.createCell((short) 11).setCellValue(enterprise.getCompanyName()); //被许可机构 row.createCell((short) 12).setCellValue(enterprise.getLegalPersonCard()); //被许可机构代码 (证件号码) row.createCell((short) 13).setCellValue(enterprise.getAdminZoning());//被许可机构行政区划 } System.out.println("导出表格的数据大小---->"+list.size()); request.setAttribute("ALL_Total_LIST", list); out = response.getOutputStream(); wb.write(out); if(((filingdate1!=null)||(filingdate2!=null)||(companyName!=null))&&((filingdate1!=null)&&(filingdate2!=null))){ out.close(); return "EXPORT"; }else{ out.close(); return SUCCESS; } } catch (Exception e) { e.printStackTrace(); return ERROR; } } /** * 获取经处理后的list * @return */ public List<TEnterprise> ListUtils(TEnterprise enterprise, Pager pager){ try { list = new ArrayList<TEnterprise>(); // 得到行政统计List List<TEnterprise> tList = totalFormService.findAll(enterprise, pager); for (int j = 0; j < tList.size(); j++) { // System.out.println("遍历list--------->"); enterprise = tList.get(j); String jdTime = enterprise.getJdTime(); // System.out.println("jdTime------>" + jdTime); String inDate = enterprise.getInDate(); // System.out.println("inDate------>" + inDate); if (inDate != null) { String jzTime2 = convertDate(jdTime, new Integer(inDate)); enterprise.setInDate(convertFormat(jzTime2)); } else { enterprise.setInDate(""); } String managescope = enterprise.getApprovalmanagescope(); if(managescope!=null){ String managescope1 = managescope.substring(1, managescope.length()-1); enterprise.setApprovalmanagescope(managescope1); } list.add(enterprise); } return list; }catch (Exception e) { e.printStackTrace(); return null; } } /** * 日期转换 将yyyy-MM-dd格式日期转换成yyyy年MM月dd日 * * @param jdTime * @return * @throws Exception */ public String convertFormat(String jdTime) throws Exception { // Calendar objCalendar = Calendar.getInstance(); Date objDate = new SimpleDateFormat("yyyy-MM-dd").parse(jdTime); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); String jdTime2 = sdf.format(objDate); System.out.println("jdTime2---->" + jdTime2); return jdTime2; } /** * 日期转换函数 将数据库中日期格式为“yyyy年MM月日”加上天数得到"yyyy-MM-dd"格式数据 * @param jdTime 发证日期 * @param inDate 有效期 * @return * @throws Exception */ public String convertDate(String jdTime, int inDate) throws Exception { System.out.println("进入日期转换函数----->" + 1111111); Calendar objCalendar = Calendar.getInstance(); Date objDate = new SimpleDateFormat("yyyy年MM月dd日").parse(jdTime); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf0 = new SimpleDateFormat("yyyy"); SimpleDateFormat sdf1 = new SimpleDateFormat("MM"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd"); int year = Integer.parseInt(sdf0.format(objDate)); int month = Integer.parseInt(sdf1.format(objDate)); int date = Integer.parseInt(sdf2.format(objDate)); // System.out.println(Integer.valueOf(inDate).intValue()); objCalendar.set(year, month - 1, date); objCalendar.add(Calendar.DATE, inDate); System.out.println("Calendar.DATE---------->" + Calendar.DATE); objDate = objCalendar.getTime(); System.out.println("objDate---->" + objDate); String jzTime = sdf.format(objDate); System.out.println("截止日期--->" + jzTime); return jzTime; } }
代码仅供参考,在CSDN下有个大牛实现数据导出时,可以实现图片等的导出,还可以既本地调用和在WEB服务器端用Servlet的调用。详情可参考(http://blog.csdn.net/lenotang/article/details/2823230)
使用POI实现数据导出Excel表格的更多相关文章
- Java使用POI实现数据导出excel报表
Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...
- Java利用POI实现导入导出Excel表格示例代码
转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...
- 【前端】将前台table数据导出excel表格
1.首先引用jquery以及table2excel <script type="text/javascript" src="js/jquery.table2exce ...
- thinkphp5.0数据导出excel表格
第一步.创建Model类文件(名称自定) 第二步.在类中写入以下代码 <?php namespace Admin\admin\model; use think\Model; class Mark ...
- 一个php文件就可以把数据库的数据导出Excel表格
数据库内容太多,复制粘贴太麻烦?那就用代码实现把,把代码写好了,导出还不容易吗,访问即可导出. excel.php <?php error_reporting(E_ALL ^ E_DEPRECA ...
- 数据导出Excel表格
public String exportInfoFr(String path,String name,String startdate,String enddate,SysUser user){ Li ...
- 使用poi导出Excel表格,jar包冲突
HTTP Status 500 – Internal Server Error Type Exception Report Message Handler processing failed; nes ...
- 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?
好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...
- 将页面中表格数据导出excel格式的文件(vue)
近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...
随机推荐
- 论python中的作用域
编程语言从早至今,可以分为面向过程编程.面向函数编程和面向对象编程.BASIC语言是典型的面向过程编程的语言,C语言支持面向函数编程,但不支持面向对象,JAVA只支持面向对象编程,python同时支持 ...
- mysql线上一些隐患查询sql
开发写了几个语句,觉得查询结果跟逻辑有点不相符,就拿到这里一起分析了下. 语句如下: select tp.title, tp.amount, ifnull( ) as aInvestAmount, i ...
- nodejs+express+jade给我baby做个小相册
去年年底迎来了my little star.从此人生多了一个最重要的牵挂.生了宝宝全家人都太忙了.最近宝宝稍微大点了,终于有空可以研究下技术了.这是14年第一帖.废话不多了.开始吧 1.安装NTVS ...
- 循序渐进开发WinForm项目(3)--Winform界面层的项目设计
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现
我在本系列随笔的开始,介绍了CRM系统一个重要的客户分类的展示界面,其中包含了从字典中加载分类.从已有数据中加载分类.以及分组列表中加载分类等方式的实现,以及可以动态对这些节点进行配置,实现客户分类的 ...
- Winform开发框架之权限管理系统的改进
权限管理系统,一直是很多Mis系统和一些常见的管理系统所需要的,所以一般可以作为独立的模块进行开发,需要的时候进行整合即可,不需要每次从头开发,除非特殊的系统需求.我在Winform开发框架介绍中的随 ...
- 在一个未知的CentOS服务器中如何加上PHP的openssl扩展
1. 服务器是定制过的,不知对应的centos版本: 2. PHP是自己编译的,而且服务器上没有保留对应版本的源代码,通过/pathto/php -v 找出php版本号,然后wget去下载对应的php ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- Java文件编码自动转换工具类(只改变编码,不会改变文件内容)
本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. public class Cha ...
- Java中处理异常中return关键字
Java中,执行try-catch-finally语句需要注意: 第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂 ...