JSP查询结果导出(接上一篇)
来源:互联网 发布:礼德财富怎么样知乎 编辑:程序博客网 时间:2024/06/05 20:31
查询出结果导出,我用的是POI,
将前台的表单传到后台,以LIST的形式传,后台处理list导出为EXCEL代码如下
excel处理类
public class ExcelFileGenerator { private final int SPLIT_COUNT = 150000; //Excel每个工作簿的行数 private ArrayList fieldName = null; //excel标题数据集 private List fieldData = null; //excel数据内容 private HSSFWorkbook workBook = null; /** * 构造器 * @param fieldName 结果集的字段名 * @param data */ public ExcelFileGenerator(ArrayList fieldName, List fieldData) { this.fieldName = fieldName; this.fieldData = fieldData; } /** * 创建HSSFWorkbook对象 * @return HSSFWorkbook */ public HSSFWorkbook createWorkbook() { BoardbandHisInfo boardbandHisInfo = new BoardbandHisInfo(); workBook = new HSSFWorkbook(); int rows = fieldData.size(); int sheetNum = 0; if (rows % SPLIT_COUNT == 0) { sheetNum = rows / SPLIT_COUNT; } else { sheetNum = rows / SPLIT_COUNT + 1; } for (int i = 1; i <= sheetNum; i++) { HSSFSheet sheet = workBook.createSheet("Page " + i); HSSFRow headRow = sheet.createRow((short) 0); for (int j = 0; j < fieldName.size(); j++) { HSSFCell cell = headRow.createCell((short) j); //添加样式 cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); //添加样式 //设置所有单元格的宽度 sheet.setColumnWidth((short)j, (short)6000); //创建样式(使用工作本的对象创建) HSSFCellStyle cellStyle = workBook.createCellStyle(); //创建字体的对象 HSSFFont font = workBook.createFont(); //将字体加粗 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //设置字体的颜色 short color = HSSFColor.RED.index; font.setColor(color); //将新设置的字体属性放置到样式中 cellStyle.setFont(font); if(fieldName.get(j) != null){ cell.setCellStyle(cellStyle); cell.setCellValue((String) fieldName.get(j)); }else{ cell.setCellStyle(cellStyle); cell.setCellValue("-"); } } for (int k = 0; k < (rows < SPLIT_COUNT ? rows : SPLIT_COUNT); k++) { HSSFRow row = sheet.createRow((short) (k + 1)); //将数据内容放入excel单元格 boardbandHisInfo = (BoardbandHisInfo) fieldData.get((i - 1)* SPLIT_COUNT + k); List rowList = new ArrayList(); rowList.add(boardbandHisInfo.getAccept_city());//地市 rowList.add(boardbandHisInfo.getDealer_name());//受理工作站名称 rowList.add(boardbandHisInfo.getAccept_date());//业务受理时间 rowList.add(boardbandHisInfo.getInnet_name());//接入方式(AD、光纤等) rowList.add(boardbandHisInfo.getService_id());//业务标识号 rowList.add(boardbandHisInfo.getFirst_name());//客户名称 rowList.add(boardbandHisInfo.getContact_phone());//客户联系电话 rowList.add(boardbandHisInfo.getInstall_address());//安装地址 rowList.add(boardbandHisInfo.getProduct_id());//宽带带宽 rowList.add(boardbandHisInfo.getMonth_fee());//资费价格 rowList.add(boardbandHisInfo.getApply_date());//宽带套餐开始时间 rowList.add(boardbandHisInfo.getInvalid_date());//宽带套餐结束时间 for (int n = 0; n < rowList.size(); n++) { HSSFCell cell = row.createCell((short) n); cell.setEncoding(HSSFCell.ENCODING_UTF_16); if(rowList.get(n) != null){ cell.setCellValue((String) rowList.get(n).toString()); }else{ cell.setCellValue(""); } } } } return workBook; } public void expordExcel(OutputStream os) throws Exception { workBook = createWorkbook(); workBook.write(os); os.close(); }}
导出方法:
public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception{System.out.println("开始导出到EXCEL");BoardbandHisInfoMaint boardbandHisInfoMaint = new BoardbandHisInfoMaint();String accept_start_date = request.getParameter("accept_start_date");String accept_end_date = request.getParameter("accept_end_date");String station_kind_str = request.getParameter("station_kind");int station_kind = Integer.parseInt(station_kind_str);List fieldData = new ArrayList();fieldData = boardbandHisInfoMaint.getExportExcelInfo(accept_start_date, accept_end_date, station_kind, request);ArrayList fieldName=getFieldName(); //excel标题数据集String excel="myexcel"; //回去输出流 OutputStream out=response.getOutputStream(); //重置输出流 response.reset(); //设置导出Excel报表的导出形式 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition","attachment;filename="+excel+".xls"); ExcelFileGenerator efg=new ExcelFileGenerator(fieldName, fieldData); efg.expordExcel(out); //设置输出形式 System.setOut(new PrintStream(out)); //刷新输出流 out.flush(); //关闭输出流 if(out!=null){ out.close(); }}
0 0
- JSP查询结果导出(接上一篇)
- SQLSERVER2005 将查询结果转换为字串[接上一篇文章]
- 接上一篇
- 接上一篇
- 接上一篇
- 接上一篇
- 批量导出查询结果
- [mysql]导出查询结果
- [mysql]导出查询结果
- navicat 导出查询结果
- 导出mysql查询结果
- mysql 导出查询结果
- hive查询结果导出
- mongodb 导出查询结果
- SendMessage函数完全使用手册(接上一篇)
- 2440初始化存储器原理(接上一篇)
- jsp查询结果分页
- 导出结果跟查询结果不一致
- c++跨平台计数器
- 将对象序列化成,并编码成UTF-8的字符串
- SQL Server 2005出现连接不上的问题时,常用的解决方法
- unbuntu源更新经验分享
- java运算符优先级
- JSP查询结果导出(接上一篇)
- javascript代码的执行顺序
- 如何选择Web APP与Native App原生开发模式的区别
- 弹框效果
- typedef 不得不看
- android 通过eclipse混淆代码、签名
- 大话C++----默认参数及其所引起的二义性
- Python单元测试——深入理解unittest
- libsvm