Excel导出数据库中数据的方法:
1. 从数据库中取出将要导出的数据,放在list中
2. 得到模板
3. 循环迭代list中的数据,然后生成一列(row)中的数据,迭代完一个对象后,加一行,直到整个list迭代完
导出的service方法如下,供大家参考!
public void exportExcel2(String payUsername) {
//得到要导出的数据
StringBuffer sb = new StringBuffer("from LogClaimRecord ");
if(StringUtils.isNotBlank(payUsername)){
sb=sb.append(" where payUserName='"+payUsername+"'");
}
sb.append(" order by createTime");
String sql = sb.toString();
List<LogClaimRecord> list = baseTransaction.find(sql);
//下载模板
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String msg = "";
HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get("com.opensymphony.xwork2.dispatcher.HttpServletResponse");
response.reset();
try
{
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-disposition", "attachment;filename=\"" + new String("Member Information.xls".getBytes("GBK"), "ISO-8859-1") + "\"");
//会员信息
} catch (UnsupportedEncodingException e1) {
msg = "不支持编码异常!";
}
String separator = java.io.File.separator; // 分隔符
String filePath = Platform.getInstance().getRealPath()+ separator+"templateFile"+separator;
Workbook rwb = null;
try {
InputStream is = new FileInputStream(filePath+"待认领记录.xls");
System.out.println("is==========="+is);
rwb = Workbook.getWorkbook(is);
System.out.println("rwb==========="+rwb);
WritableWorkbook wwb = Workbook.createWorkbook(response.getOutputStream(), rwb);
WritableSheet ws = wwb.getSheet(0);
int rowNum = 1;
int colNum = 0;
WritableFont wFont = new WritableFont(WritableFont.ARIAL, 10);
WritableCellFormat wcf = new WritableCellFormat(wFont);
wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
wcf.setBorder(Border.ALL, BorderLineStyle.THIN);
wcf.setAlignment(Alignment.CENTRE);
wcf.setWrap(true);
for (int iRow = 0; iRow < list.size(); iRow++) {
colNum = 0;
//汇款金额
String payAmounts = list.get(iRow).getPayAmounts();
if(payAmounts == null){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else{
ws.addCell(new Label(colNum, rowNum, payAmounts+"元", wcf));
}
colNum++;
//汇款人
String payUserName = list.get(iRow).getPayUserName();
if(payAmounts == null){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else{
ws.addCell(new Label(colNum, rowNum, payUserName, wcf));
}
colNum++;
//汇款方式
String payWay = list.get(iRow).getPayWay();
if(payAmounts == null){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else if("1".equals(payWay.trim())){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else if("2".equals(payWay.trim())){
ws.addCell(new Label(colNum, rowNum, "现场转账", wcf));
}else if("3".equals(payWay.trim())){
ws.addCell(new Label(colNum, rowNum, "银行转账", wcf));
}else if("4".equals(payWay.trim())){
ws.addCell(new Label(colNum, rowNum, "邮局汇款", wcf));
}
colNum++;
//汇款时间
Timestamp payTime = list.get(iRow).getPayTime();
if(payTime == null){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else{
ws.addCell(new Label(colNum, rowNum, df.format(payTime), wcf));
}
colNum++;
//创建时间
Timestamp createTime = list.get(iRow).getCreateTime();
if(payTime == null){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else{
ws.addCell(new Label(colNum, rowNum, df.format(createTime), wcf));
}
colNum++;
//认领原因
String reason = list.get(iRow).getReason();
if(reason == null){
ws.addCell(new Label(colNum, rowNum, "", wcf));
}else{
ws.addCell(new Label(colNum, rowNum, reason, wcf));
}
colNum++;
rowNum++;
}
wwb.write();
wwb.close();
}
catch (Exception e)
{
msg = "数据没法写入excel中!!";
e.printStackTrace();
} finally {
System.out.println("finally.rwb==========="+rwb);
rwb.close();
}
}
相关推荐
在IT行业中,Excel导出是一项常见的功能,尤其在企业级应用中,用于数据报表的生成与分享。"Excel导出支持前台和后台导出"这一技术主题涉及到如何在Web应用程序中实现用户请求的数据导出到Excel文件,既可以选择在...
在IT行业中,Excel导出是一项常见的需求,尤其是在数据处理、报表生成和数据分析等领域。Apache POI是一个开源项目,专门用于读取和写入Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。以下是对"Excel导出...
"Excel导出数据(根据Excel模板定义)"这个主题涉及到的核心技术是如何根据预设的Excel模板生成和导出数据,通常用于批量生成报表或者进行复杂的数据呈现。下面将详细解释这一过程及其相关知识点。 1. **Excel模板...
在这个场景中,"新版excel导出控件.rar_donec1p_pb_pb excel_pb 导出_pb导出excel" 的标题和描述提到了一个关键的开发需求:在PB应用中导出数据到Excel文件。 传统的PowerBuilder(PB)自身虽然提供了数据窗口...
然而,当面对千万级甚至更大规模的数据时,传统的Excel导出方式会面临诸多挑战,如文件大小限制、性能瓶颈等。针对这一问题,"海量千万级Excel导出源码-自动分sheet"提供了一种解决方案。 首先,我们要理解为什么...
在IT行业中,Excel导出公共组件是一个非常实用的功能,它允许开发者通过编程方式将查询到的数据高效地导出为Excel格式的文件。这样的组件通常被广泛应用于数据分析、报表生成、数据备份等领域,使得用户可以方便地对...
### Excel导出时不要表头知识点详解 #### 一、知识点概述 在处理大量数据时,Excel 是一种非常实用的数据管理工具。有时我们可能需要将数据从数据库或其他数据源导出到Excel文件中,但在这个过程中,我们并不希望...
本话题将深入探讨如何使用C#编程语言来解决“Excel导出百万级数据”的问题。 首先,我们需要理解Excel的性能瓶颈。Excel本身对打开和操作大量数据有一定限制,特别是2003版本之前的XLS格式,最大行数为65536行,而...
### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,尤其是在企业级应用开发中,Excel文件的处理成为了一项必不可少的能力。Apache POI项目提供了一系列用于读写Microsoft Office...
### ExtJS实现Excel导出:深入解析与实践 在当今高度数字化的工作环境中,数据的管理和呈现方式至关重要。其中,Excel作为数据处理和分析的重要工具,其导出功能在各种应用场景中显得尤为关键。ExtJS,作为一种强大...
java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入
在"ASP excel导出/导入Access数据库(代码+实例下载)"这个主题中,我们将探讨如何使用ASP实现这两个功能。首先,我们来看Excel导出到Access数据库的过程。 1. **Excel数据导入Access**: - 首先,你需要使用ADO...
"php excel导出 导入"这个主题涵盖了一系列的技术点,包括如何使用PHP与Excel文件进行交互。下面将详细讲解这个主题。 1. **PHPExcel库** PHPExcel是一个强大的PHP类库,它允许开发者创建、读取和修改Microsoft ...
本教程将详细介绍如何使用JAVA POI库来创建一个包含图片的完整Excel导出功能。 首先,你需要在项目中引入Apache POI依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
"多个Excel导出压缩成zip文件"的场景通常是为了解决数据量过大导致的文件管理不便、传输效率低以及存储空间占用过多等问题。下面我们将深入探讨这个话题,主要涵盖以下几个方面: 1. **大数据量导出**: - 当数据...
本主题聚焦于如何利用C#实现数据的导出功能,包括将查询结果或表格信息导出为Excel文件和PDF文档。这两种格式在数据共享、报告生成和打印等方面非常常见。 首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx...
首先,Excel导出是一个常用的功能,它允许我们将工作簿中的数据保存为多种格式,如CSV、PDF或XML等,便于数据交换和备份。在编程环境中,可以使用Python的pandas库或VBA宏来批量自动化这个过程。 其次,自定义表头...
Excel导出Lua和XML工具是一种实用的软件工具,它允许用户通过Excel表格来方便地管理和导出数据到Lua脚本语言或XML(可扩展标记语言)格式。在IT行业中,这两种格式都有各自的用途和优势。 Lua是一种轻量级的、...
标题说的很清楚,利用asm-3.1.jar,cglib-2.2.jar,commons-io-1.3.2.jar,poi-3.9-20121203.jar 开发的一个工具包。 其中用到字节码编码,反射,excel操作。...主要功能1、自定义列导出excel Main()类为测试用例
在Excel导出中,我们可以定义一个javabean,每个属性对应Excel表格中的一列。以下是一个简单的步骤: 1. **创建javabean**: 假设我们有一个`Student`类,包含`name`, `age`, `imagePath`等属性。 2. **填充数据**: ...