最近做一个月参与了公司两个小项目,毕业快两年,参与项目还真少!所以呢,本人掌握的知识还是很有限,完成了某些功能,需要放到这里,供日后参考!
如何从数据库中导出数据生成Excel文档
首先第一步,我参考了POI 这个开源项目,从其官方网站download需要用到的jar包。 http://poi.apache.org/
然后项目采用的是Struts1.* 的版本,ok,那么放一些关键代码上来:
Action中的代码:
public ActionForward doExportExcel(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ExportExcelService eeService = new ExportExcelService();
RawDataExportSearchForm rawDataExportSearchForm = (RawDataExportSearchForm) form;
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\" " + "Reporting.xls" + "\"");
HSSFWorkbook wb = eeService.doExportExcel(request, rawDataExportSearchForm);
BufferedOutputStream buf = new BufferedOutputStream(response
.getOutputStream());
wb.write(buf);
buf.close();
return mapping.findForward("doExporting");
}
说明下: RawDataExportSearchForm 是前台页面用来查询的ActionForm,用于传入参数(parameters)
Service的代码:
public HSSFWorkbook doExportExcel(HttpServletRequest request, RawDataExportSearchForm form){
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = workbook.createSheet("Sheet1");
// index from 0,0... cell A1 is cell(0,0)
HSSFRow rowHead = worksheet.createRow((short) 0);
HSSFCell cellHeadA = rowHead.createCell((short) 0);
cellHeadA.setCellValue("第一行列名");
HSSFCell cellHeadB = rowHead.createCell((short) 1);
cellHeadB.setCellValue("第一行列名");
HSSFCell cellHeadC = rowHead.createCell((short) 2);
cellHeadC.setCellValue("第一行列名");
HSSFCell cellHeadD = rowHead.createCell((short) 3);
cellHeadD.setCellValue("第一行列名");
…………
//第一行列名写完后
//从DB中获取Data,组装成HashMap
HashMap<Long, RawData> rawDataMap = getRawDataFromDB(form);
Set keys = rawDataMap.keySet();
RawData rawData = null;
int i = 1;
//遍历List中的每一个Object
for(Iterator iter = keys.iterator(); iter.hasNext(); i++){
rawData = rawDataMap.get(iter.next());
HSSFRow row = worksheet.createRow((short) i);
HSSFCell cellA = row.createCell((short) 0);
cellA.setEncoding(HSSFCell.ENCODING_UTF_16);
cellA.setCellValue(rawData.getField1());
HSSFCell cellB = row.createCell((short) 1);
cellB.setEncoding(HSSFCell.ENCODING_UTF_16);
cellB.setCellValue(rawData.getField2());
HSSFCell cellC = row.createCell((short) 2);
cellC.setEncoding(HSSFCell.ENCODING_UTF_16);
cellC.setCellValue(rawData.getField3());
HSSFCell cellD = row.createCell((short) 3);
cellD.setEncoding(HSSFCell.ENCODING_UTF_16);
cellD.setCellValue(rawData.getField4());
……
//till to end, cell.setEncoding(HSSFCell.ENCODING_UTF_16);是为解决显示中文出乱码问题
}
return workbook;
}
结束了
分享到:
相关推荐
SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel
本工具用于将数据库表结构、主键信息和索引信息导出生成Excel文件。 主要采用jdbc连接数据库(Oracle),采用Poi生成Excel文档(2007)
springboot+mybatis+poi的方式实现,从mysql数据库读取某一张表数据生成excel,完成页面文件导出(备份下载)功能
web中使用POI导入导出EXCEL文件的例子 struts1.x的例子,struts2.x可以参考自己修改 1.action的写法 import java.io.*; import java.sql.*; import java.util.ArrayList; import javax.servlet....
可将oracle中表名 表注释 字段类型 字段长度 字段注释 导出为excel,生成的数据库表index sheet页面 可进行表sheet之间的跳转
开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一...jxl 由于其小巧 易用的特点, 逐渐已经取代了 POI-excel的地位, 成为了越来越多的java开发人员生成excel文件的首选。
本文主要介绍了Java根据模板导出Excel报表并复制模板生成多个Sheet页的方法,具有很好的参考价值。下面跟着小编一起来看下吧
java代码,实现从数据库中查询出数据,然后通过poi实现合并单元格生成excel
Springboot+mybatis+poi输出报表。从数据库中将数据拿出来,生成excel,然后提供下载。
导入项目后如果出现antlr-2.7.2.jar 和 antlr-2.7.6.jar 包冲突,请自行网络搜索解决, 数据库名 orcl ...myeclipse 8.6 ...实现了统计图功能,分页子查询功能,生成excel文件功能,生成图文PDF文件等功能
工作中纯靠数据库软件生成的Excel报表有可能不会满足需求,时间工作中需要的数据结构往往是很复杂的,而且在大数据的情况下需要对数据的处理更加精细化,所以单纯的sql语句已经不能满足对数据处理的要求. 工具 为了使...
查出功能使用的是layui自带组件upload实现,通过前端来生成Excel表格。 高校成绩分析与管理系统使用了当前最流行的框架,有效提高了开发效率,对系统的表结构的设计使用了PowerDesiner来实现,通过按照不同身份来...
5.使用 poi导出 excel文件,供决策人员参考. 6.采用二进制运算实现权限控制,利用interceptor实现粗粒度控制以及重写struts2 标签实现细粒度权限控制.采用二位运算能够使得权限运算更加快捷,而且极大 降低 session...
database:数据库工具,java导入导出sql,mybatis分页插件等 email:邮箱工具 encrypt:加密签名工具 http:网络请求工具 image:图片处理工具 list:集合工具 oauth:第三方登录封装 office:office文件工具 pay:第三方支付...
使用jacob、jxl、apache poi的; 12.需要在Web中调用Word/Excel,并且追求系统运行稳定、可靠的; 13.最终用户可以浏览 Word/Excel/Ppt 文档内容,但需要禁止复制、粘贴、下载、另存的; 14.需要在html页面中在线...
有时需要按照固定的模板将数据导出到Word,如流程审批单,在流程处理完成后将处理过程按照流程单的要求导出,有时程序中需要实现生成标准Word文档,要求能够打印,并且保持页面样式不变,常见的方案有POI、iText、...
20.3 应用POI组件导出到Word 772 第21章 JSP操作Excel 775 21.1 应用JXL组件操作Excel 776 21.2 应用POI组件操作Excel 807 第22章 报表与打印 829 22.1 Web打印 830 22.2 利用Word打印报表 833 22.3 利用Excel打印...
20.3 应用POI组件导出到Word 772 第21章 JSP操作Excel 775 21.1 应用JXL组件操作Excel 776 21.2 应用POI组件操作Excel 807 第22章 报表与打印 829 22.1 Web打印 830 22.2 利用Word打印报表 833 22.3 利用Excel打印...
而且开发人员还能够以简洁的代码快速的将数据库数据动态填充到Office文档指定位置,并且也能够从Office文档中提取指定位置的数据保存到数据库。 SOAOffice提供这些强大功能的同时,服务器端并不需要安装运行Office...
使用poi导出excel 项目亮点: 严格的权限控制,当然你也可以自己扩展.. 采用redis作为主键生成策略,无序考虑主键策略,且通用性相当不错.-- AOP加注解方式记录日志,日志内容清晰,记录方式简单.-- 简单易用的导出配置,助...