用过jxl的一看就明白了
<%@page import="jxl.write.WritableFont,jxl.write.WritableCellFormat,java.sql.ResultSetMetaData,java.io.*,jxl.write.Label,java.net.*,jxl.write.WritableCell,jxl.write.WritableWorkbook,
java.util.*,com.running.crm.model.*,jxl.Workbook,jxl.write.WritableSheet"
contentType="application/x-msdownload" pageEncoding="utf-8"%>
<%
OutputStream os = response.getOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(os);
Label label;
response.setHeader("Content-disposition", "attachment; filename="+ URLEncoder.encode("客户资料", "utf-8") + ".xls");
List customers=(List<Customer>)request.getAttribute("billResultSet");
//String deptName=(String)request.getAttribute("deptName");
int length=customers.size();//查询结果记录数
int sheetSize=20000;
int sheetNum=1;
if(length%sheetSize>0){
sheetNum=length/sheetSize+1;
}else{
sheetNum=length/sheetSize;
}
for(int kk=0;kk<sheetNum;kk++){
WritableSheet ws=wwb.createSheet(("查询结果"+kk),kk);
//设定第一行的行高
ws.setRowView(0,320);
//将第一列的宽度设为20
ws.setColumnView(0,15);
ws.setColumnView(1,15);
ws.setColumnView(2,20);
ws.setColumnView(3,20);
ws.setColumnView(4,20);
ws.setColumnView(5,20);
ws.setColumnView(6,20);
ws.setColumnView(7,20);
String ss[] = {"姓名","性别","手机号码","证件类型","证件号码","公司","家庭住址","爱好" };
for (int i = 0; i < 8; i++) {
WritableFont arial12pt = new WritableFont(WritableFont.ARIAL,11, WritableFont.BOLD);
WritableCellFormat arial12format = new WritableCellFormat(arial12pt);
arial12format.setWrap(false);
label = new Label(i, 0, ss[i], arial12format);
ws.addCell(label);
}
for(int i = kk*sheetSize; i< (kk+1)*sheetSize ; i++ ){
if(i<length ){
Customer customer = (Customer) customers.get(i);
for (int j = 0; j < 8; j++) {
switch(j){
case 0:label=new Label(j, i+1-(kk*sheetSize), customer.getCustomerName());break;
case 1:label=new Label(j,i+1-(kk*sheetSize), customer.getCustomerSex());break;
case 2:label=new Label(j, i+1-(kk*sheetSize), customer.getPhoneNo());break;
// case 3:lable=new Label(j, i, customer.getCategoryName());break;
case 3:label=new Label(j, i+1-(kk*sheetSize), customer.getCardType());break;
case 4:label=new Label(j, i+1-(kk*sheetSize), customer.getCardId());break;
case 5:label=new Label(j, i+1-(kk*sheetSize), customer.getCustomerCorp());break;
case 6:label=new Label(j, i+1-(kk*sheetSize), customer.getHomeAddr());break;
case 7:label=new Label(j, i+1-(kk*sheetSize), customer.getCustomerJoy());break;
default:label=new Label(j,i+1-(kk*sheetSize),"");
}
ws.addCell(label);
}
}else{
break;
}
}
}
wwb.write();
wwb.close();
os.close();
out.clear();
out = pageContext.pushBody();
return;
%>
分享到:
相关推荐
在Java编程环境中,我们经常需要处理数据的导入和导出,Excel作为一种常见的数据存储和展示格式,被广泛应用。`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库...
注意,如果你的数据量非常大,可能需要考虑分批处理或使用流式写入以避免内存溢出。 总的来说,JXL库提供了一个方便的方式来处理Excel文件,无论是在Java应用程序还是服务器端,都能有效地进行数据导入和导出。通过...
- 如果数据量大,考虑分批写入或使用更高效的写入策略,以避免一次性加载大量数据导致内存压力。 通过以上解析,我们可以看到JXL库在处理数据导入导出时的灵活性和实用性,它简化了Java程序与Excel文件交互的过程...
在描述中提到的“支持多个sheet页导出”意味着JXL库允许开发者在一个Excel文件中创建多个工作表(Sheet),每个工作表可以独立存储和显示数据。这在处理大量数据或者需要分类展示信息时非常有用。你可以根据需要...
2. **创建Worksheet对象**:工作簿包含多个Sheet,即Excel中的工作表。我们可以使用`Workbook.createSheet()`方法创建新的Sheet。 ```java WritableSheet sheet = workbook.createSheet("Sheet1", 0); ``` 3. *...
此外,如果数据量较大,应考虑分批写入或使用流式处理,以优化性能。 在实际项目中,你可能会遇到一些问题,如文件权限、内存溢出或线程同步等。对于这些问题,要确保正确请求存储权限,使用内存管理策略(如流或...
Java使用JXL库进行Excel导入导出是一种常见的技术实践,特别是在需要在Java应用程序或Web应用中处理Excel数据时。JXL是一个轻量级的库,它允许开发人员以纯Java方式读取、创建和修改Excel文件,而无需依赖于Windows...
标题中的“jxl导出excel”指的是使用JExcelApi(简称jxl)库来生成和导出Microsoft Excel格式的文件。JExcelApi是一个开源Java库,允许开发者在Java应用程序中读取、写入和修改Excel文件。这个工具类在处理大量数据...
对于大数据量导出,我们主要关注BIFF8格式,因为它对内存的需求相对较低,适合处理大量数据。 **1. 数据分块处理:** 由于一次性加载大量数据可能导致内存溢出,jxl提供了分块写入的功能。通过设置`...
《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...
4. 写入数据:对于每个需要写入的行和列,可以使用`Sheet.createRow()`和`Row.createCell()`创建对应的Row和Cell对象,然后通过`Cell.setCellValue()`设置单元格的值。 5. 设置样式:Jxl提供了丰富的样式选项,如...
例如,可以创建一个新的Workbook对象,然后在这个工作簿中添加Sheet对象,再在Sheet上填充数据。 2. **数据类型支持**:jxl.jar不仅支持基本的数据类型如字符串、数字、日期,还支持布尔值、公式、超链接等复杂数据...
- **多线程处理**:如果数据量非常大,可以考虑使用多线程技术来提高处理效率。 - **异常处理**:示例代码中只简单地打印了异常堆栈,实际应用中应该有更完善的异常处理机制。 综上所述,通过合理的设计和编码,...
jxl库是Java中一个广泛使用的库,它提供了读写Excel文件的功能。本篇文章将深入探讨如何利用jxl库实现数据库内容的导出。 首先,你需要在项目中引入jxl库。在提供的压缩包中,`jxl.jar`是jxl的核心库文件,你需要将...
如果你的数据量超过了这个限制,你将需要考虑使用多工作簿的策略,或者更换更强大的库,如Apache POI。 Apache POI是一个开源项目,它为Microsoft Office格式提供了广泛的API支持,包括Excel。POI允许我们创建、...
### 使用JXL库导出Excel的关键知识点 #### JXL库简介 JXL(Java Excel API)是一个用于读取和写入Microsoft Excel文件的Java库。它支持多种版本的Excel文件,包括`.xls`格式。使用JXL库进行Excel操作非常方便,特别...
Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...
标题 "jxl 实现根据sql语句导出excel文件" 提到的是使用jxl库来创建Excel文件,并根据SQL查询结果填充数据的过程。jxl是一个Java库,它提供了读写Microsoft Excel文件的能力,这对于在Java应用程序中处理和生成报表...
"jxl导出excel.zip"是一个包含工具类的压缩包,用于帮助开发者便捷地将数据导出为Excel格式,主要利用了JXL库。JXL是Java Excel API的一个简称,它是一个开源的Java库,支持读取、写入以及修改Microsoft Excel文件。...
这个标题暗示了我们可能会有一个模板,该模板可能是用于批量导出数据到Excel表格中,或者用于测试jxl库的功能和性能。 【描述】"jxl 模板"进一步强调了模板的概念。在编程中,模板通常指的是预定义的结构或布局,...