`

POI导出到Excel

阅读更多
if (billForm.getButtonName() != null) {
				if(billForm.getButtonName().equals("export")){
					
					System.out.println("-------------------export start--------------------");
					HSSFWorkbook wb = new HSSFWorkbook();
					HSSFSheet sheet = wb.createSheet("new sheet");
					HSSFRow row = sheet.createRow((short) 0);
					HSSFCell cell = row.createCell((short) 0);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("手机号");
					cell = row.createCell((short) 1);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("汇款人");
					cell = row.createCell((short) 2);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("收款人");
					cell = row.createCell((short) 3);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("收款人卡号");
					cell = row.createCell((short) 4);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("开户行");
					cell = row.createCell((short) 5);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("发送日期");
					cell = row.createCell((short) 6);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("金额");
					cell = row.createCell((short) 7);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("手续费");
					cell = row.createCell((short) 8);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("小计");
					cell = row.createCell((short) 9);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("终端号码");
					cell = row.createCell((short) 10);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("支付卡号");
					cell = row.createCell((short) 11);
					cell.setEncoding(HSSFCell.ENCODING_UTF_16);
					cell.setCellValue("支付状态");
					
					DetachedCriteria detachedCriteria = DetachedCriteria.forClass(WtPepBillpay.class);
			        detachedCriteria.createAlias("id", "id");
			        
			        String start = billForm.getDateStart();
					String end = billForm.getDateEnd();
					String remitName=billForm.getRemitName();//汇款人
					String bankName=billForm.getBankName();//收款人
					String termid=billForm.getTermid();//手机号
					String zonePhone=billForm.getZonePhone();//终端号
					String payCode = billForm.getPayCodeSelect();//支付状态
					if(StringUtils.isNotEmpty(start)&&StringUtils.isNotEmpty(end)){
						detachedCriteria.add(Restrictions.between(WtPepBillpay.PEPDATE, start, end));
						billForm.setDateStart("");//清空
						billForm.setDateEnd("");//清空
					}
					if (StringUtils.isNotEmpty(bankName)) {
						String temp = bankName.trim();
//						detachedCriteria.add(Restrictions.between(WtPepBillpay.BANKNAME, billForm.getBankName().trim(), temp));
						String keyWord="%" + temp + "%";
						detachedCriteria.add(Restrictions.like(WtPepBillpay.BANKNAME, keyWord));
						billForm.setBankName("");//清空
					}
					if (StringUtils.isNotEmpty(termid)) {
						String temp = termid.trim();
//						detachedCriteria.add(Restrictions.between(WtPepBillpay.TERMID, billForm.getTermid().trim(), temp));
						String keyWord="%" + temp + "%";
						detachedCriteria.add(Restrictions.like(WtPepBillpay.BANKNAME, keyWord));
						billForm.setTermid("");//清空
					}
					if (StringUtils.isNotEmpty(zonePhone)) {
						if(zonePhone.indexOf("-")!=-1){
							String[] splitArray = zonePhone.split("-");
							String zone = splitArray[0].trim();
							String phone = splitArray[1].trim();
//							detachedCriteria.add(Restrictions.between(WtPepBillpay.ZONE, splitArray[0].trim(), temp0));
//							detachedCriteria.add(Restrictions.between(WtPepBillpay.PHONE, splitArray[1].trim(), temp1));
							
							String keyWord0="%" + zone + "%";
							String keyWord1="%" + phone + "%";
							
							detachedCriteria.add(Restrictions.like(WtPepBillpay.ZONE, keyWord0));
							detachedCriteria.add(Restrictions.like(WtPepBillpay.PHONE, keyWord1));
						}else{
							String temp = zonePhone.trim();
//							detachedCriteria.add(Restrictions.between(WtPepBillpay.PHONE, billForm.getZonePhone().trim(), temp));
							String keyWord="%" + temp + "%";
							detachedCriteria.add(Restrictions.like(WtPepBillpay.PHONE, keyWord));
						}
						billForm.setZonePhone("");//清空
					}
					if (payCode!=null){
						
						if(payCode.equals("SS")){
								
						}else if(payCode.equals("00")){//00已支付
							detachedCriteria.add(Restrictions.eq(WtPepBillpay.BILLPAYCODE, "00"));
						}
						else if(payCode.equals("FF")){
							detachedCriteria.add(Restrictions.eq(WtPepBillpay.BILLPAYCODE, "FF"));
						}
					}
					//排序
					detachedCriteria.addOrder(Order.desc("pepdate"));
					detachedCriteria.addOrder(Order.desc("peptime"));
					List exportList = this.getBillService().getListByCriteria(detachedCriteria);
					
					System.out.println("exportList.size="+exportList.size());
					
					Iterator itr = exportList.iterator();
					WtPepBillpay wtp;
					short rowNum = 1;
					String temp = "";
					while (itr.hasNext()) {
						wtp = (WtPepBillpay) itr.next();
						row = sheet.createRow(rowNum);
						cell = row.createCell((short) 0);
						cell.setCellValue(wtp.getTermid());
						cell = row.createCell((short) 1);
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue("华势");
						cell = row.createCell((short) 2);
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(wtp.getBankName());
						cell = row.createCell((short) 3);
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(wtp.getBankCard());
						cell = row.createCell((short) 4);
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						if (wtp.getOpeningBank()== null || wtp.getOpeningBank().equals(""))
							wtp.setOpeningBank("—");
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(wtp.getOpeningBank());
						cell = row.createCell((short) 5);
						temp = wtp.getPepdate().substring(0, 4) + "-"
								+ wtp.getPepdate().substring(4, 6) + "-"
								+ wtp.getPepdate().substring(6, 8);
						cell.setCellValue(temp);
						cell = row.createCell((short) 6);
						/*temp = Integer.parseInt(wtp.getTranamt().substring(
								0, 10))
								+ "." + wtp.getTranamt().substring(10, 12);*/
						temp = "¥" + Util.FormatSum(wtp.getTranamt());//modify for NumberFormatException
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(temp);
						cell = row.createCell((short) 7);
						temp = "¥" + Util.FormatSum(wtp.getFee().trim());
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(temp);
						cell = row.createCell((short) 8);
						long total = Long.parseLong(wtp.getTranamt())+Long.parseLong(Util.KillZero(wtp.getFee().trim()));
						temp = "¥" + Util.FormatSum(String.valueOf(total));
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(temp);
						cell = row.createCell((short) 9);
						if(wtp.getZone()!=null){
						cell.setCellValue(wtp.getZone().trim() + "-"
								+ wtp.getPhone());
						}else{
							cell.setCellValue(wtp.getPhone());
						}
						cell = row.createCell((short) 10);
						if (!wtp.getBillPaycode().equals("00")){
							temp = "—";
						}else{
							temp = wtp.getPayCard();
						}
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						cell.setCellValue(temp);
						cell = row.createCell((short) 11);
						cell.setEncoding(HSSFCell.ENCODING_UTF_16);
						if (wtp.getBillPaycode().equals("00"))
							temp = "已支付";
						else
							temp = "未支付";
						cell.setCellValue(temp);
						rowNum++;
					}
					try {
						response.setContentType("octets/stream");
						response.addHeader("Content-Disposition",
								"attachment;filename=today.xls");
		
						OutputStream fileOut = response.getOutputStream();
						wb.write(fileOut);
						fileOut.close();
		
					} catch (FileNotFoundException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
					System.out.println("--------------------export end------------------------");	
					
					return null;//add for "cannot forward after response has been commit"
					
			}
			}
分享到:
评论

相关推荐

    struts2 poi导出到excel

    Struts2和Apache POI是Java开发中处理Web应用程序数据导出到Excel的常用工具。...以上就是使用Struts2和Apache POI导出数据到Excel的基本流程和关键知识点,实际应用中可能需要根据具体需求进行调整和优化。

    POI导出Excel文件

    以下是一个简化的示例,演示了如何使用POI导出Excel: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io....

    poi导出excel表格

    本教程将详细讲解如何使用Apache POI在Web环境中导出Excel表格,避免生成不必要的临时文件,从而优化系统资源管理。 一、Apache POI简介 Apache POI 是一个开源项目,它提供了Java API来处理Microsoft的Office格式...

    POI导出 POI导出 POI导出

    POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI...

    springboot+poi导出指定格式Excel模板

    springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式...

    txt导入到mysql数据库,利用poi导出到excel

    总结,从TXT文件导入数据到MySQL数据库是一个涉及文件读取、数据解析和数据库操作的过程,而利用Apache POI导出数据到Excel则涉及到文件流处理和Excel文档的构造。这些技能在实际的IT工作中非常实用,尤其是在数据...

    java poi导出图片到excel示例代码

    Java POI导出图片到Excel示例代码详解 Java POI是Java开发中常用的开源库,用于读写Microsoft Office文件格式,包括Excel、Word、PowerPoint等。今天,我们将介绍如何使用Java POI将图片导出到Excel中。 标题解释 ...

    java使用POI导出 Excel工具类

    java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。

    使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包

    使用POI导出Excel文件** 导出Excel文件主要涉及以下几个步骤: - **创建Workbook对象**:这是Excel文件的容器,可以使用`XSSFWorkbook`(针对.xlsx)或`HSSFWorkbook`(针对.xls)创建。 - **创建Sheet对象**:...

    使用poi方式导出excel(分多个sheet导出)

    七、导出Excel文件 最后,将Workbook写入OutputStream或File,完成导出: ```java try (FileOutputStream out = new FileOutputStream("output.xlsx")) { workbook.write(out); } catch (IOException e) { e....

    POI导出Excel表格

    在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    poi导出根据模板导出excel和简单列表导出excel源码

    在本案例中,我们关注的是如何使用 Apache POI 库来导出 Excel 文件,特别是根据模板导出和简单列表导出。下面将详细介绍这个过程。 1. **Apache POI 概述** Apache POI 提供了 Java API 来读写 Microsoft Office ...

    poi导出excel生成下拉列表

    poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列

    POI导出操作Excel

    在这个例子中,我们看到如何使用POI库来将数据从数据库导出到Excel文件中。以下是关于这个话题的详细知识点: 1. **Apache POI**: Apache POI 是一个开源项目,它允许开发人员使用Java读取、写入和修改Microsoft ...

    POI的EXCEL导出,自动换行

    通过以上步骤,我们成功地实现了使用Apache POI在Java中导出Excel文件,并实现了自动换行的功能。这种方式不仅可以提高工作效率,还能确保数据的准确性和完整性。 #### 六、注意事项与优化建议 - **兼容性问题**:...

    java poi导出excel

    以上就是使用Java POI导出Excel的基本步骤。你可以根据实际需求调整代码,例如添加数据遍历、样式设置、图表生成等功能。确保正确管理资源,避免内存泄漏,特别是在服务器端处理大量数据时。记得在完成后关闭工作簿...

    POI导出带图片的excel

    在本文中,我们将深入探讨如何使用POI库将图片插入到Excel文档中,以便创建包含图像的丰富报告。 首先,让我们理解POI的基本概念。Apache POI提供了HSSF(Horrible Spreadsheet Format)和XSSF(XML Spreadsheet ...

    poi 导出多表头

    在本场景中,我们关注的是如何使用 POI 来创建具有复杂表头的 Excel 导出功能。多表头通常指的是在 Excel 表格中拥有多个层次的列标题,这在处理分类数据或者构建具有嵌套结构的报告时非常有用。 ** poi 导出多表头...

    poi excel 模板读取并导出带公式的excel文档

    2. **通过模板导出Excel表格**: - 在开发中,通常会预先准备好一个Excel模板文件,这个模板文件包含了固定格式和一些基本的数据结构。 - Java程序通过读取这个模板文件,然后填充数据,最后将填充后的文件导出为...

    poi导出excel参考方法

    POI导出Excel参考方法 POI(Poor Obfuscation Implementation)是一个Java的API,用于操作Microsoft Office文档,包括Excel、Word、PowerPoint等。下面是POI导出Excel参考方法的相关知识点: 1. POI的基本概念 ...

Global site tag (gtag.js) - Google Analytics