方法1
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
public String Report2UserInfo() throws IOException, WriteException{
List rsList = userInfoService.queryList();
String fileName = sf.format(date)+".xls";
WritableWorkbook wwb;
FileOutputStream fos;
try {
fos = new FileOutputStream(fileName);
wwb = Workbook.createWorkbook(fos);
WritableSheet ws = wwb.createSheet("员工信息表", 0); // 创建一个工作表
// 设置单元格的文字格式
// WritableFont wf = new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false,
// UnderlineStyle.NO_UNDERLINE,Colour.BLUE);
// WritableCellFormat wcf = new WritableCellFormat(wf);
// wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
// wcf.setAlignment(Alignment.CENTRE);
// ws.setRowView(1, 500);
WritableFont wf = new WritableFont(WritableFont.TIMES, 10 ,WritableFont.BOLD);//定义字体
wf.setColour(Colour.BLUE);//蓝色字体
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setAlignment(jxl.format.Alignment.CENTRE);//左右居中
wcf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//上下居中
wcf.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK);//黑色边框
wcf.setBackground(Colour.YELLOW);//黄色背景
int charTitle = 10;// 标题字体大小
int charNormal = 10;// 标题字体大小
// 添加带有字型Formatting的对象
// 用于标题
jxl.write.WritableFont titleFont = new jxl.write.WritableFont(
WritableFont.createFont("宋体"), charTitle, WritableFont.BOLD);
jxl.write.WritableCellFormat titleFormat = new jxl.write.WritableCellFormat(
titleFont);
titleFormat.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
titleFormat.setAlignment(Alignment.CENTRE); // 水平对齐
// titleFormat.setWrap(true); // 是否换行
titleFormat.setBackground(Colour.GRAY_25);// 背景色暗灰-25%
// 用于正文
WritableFont wcf1 = new WritableFont(WritableFont
.createFont("宋体"), charNormal);
// 填充数据的内容
UserInfo[] p = new UserInfo[rsList.size()];
for (int i=0;i<titles.length;i++) {
Label label=new Label(i,0,titles[i],wcf);
//将定义好的单元格添加到工作表中
ws.addCell(label);
}
for (int i = 0; i < rsList.size(); i++){
p[i] = (UserInfo)rsList.get(i);
ws.addCell(new Label(0, i + 1, String.valueOf(i+1), titleFormat));
ws.addCell(new Label(1, i + 1, p[i].getCompanyName(), titleFormat));
ws.addCell(new Label(2, i + 1, p[i].getUserName(), titleFormat));
ws.addCell(new Label(3, i + 1, p[i].getMobileNumber(), titleFormat));
if(i == 0)
wcf1 = new WritableFont(WritableFont
.createFont("宋体"), charNormal);
}
wwb.write();
wwb.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
点击立即下载增加如下代码
OutputStream os = response.getOutputStream();
// 取得输出流
response.reset();// 清空输出流
// response.setHeader("Content-disposition", "attachment; filename="+new String(fileName.getBytes("utf-8"),"8859_1"));// 设定输出文件头
response.setHeader("Content-disposition", "attachment; filename="+fileName);// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
方法2
public String ReportUserInfo(){
//继承 ActionSupport即可
HttpServletResponse response = ServletActionContext.getResponse();
List rsList = userInfoService.queryList();
// String fileName = "C:\\"+sf.format(date)+".xls";
String fileName = sf.format(date)+".xls";
try
{
OutputStream os = response.getOutputStream();
// 取得输出流
response.reset();// 清空输出流
// response.setHeader("Content-disposition", "attachment; filename="+new String(fileName.getBytes("utf-8"),"8859_1"));// 设定输出文件头
response.setHeader("Content-disposition", "attachment; filename="+fileName);// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
WritableWorkbook book=Workbook.createWorkbook(os); // 建立excel文件
// WritableWorkbook book=Workbook.createWorkbook(new File(fileName));
//生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet=book.createSheet("员工信息表",0);
//在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
//以及单元格内容为test
for (int i=0;i<titles.length;i++) {
Label label=new Label(i,0,titles[i]);
//将定义好的单元格添加到工作表中
sheet.addCell(label);
}
long countNumber=0;
for (int i=0;i<rsList.size();i++) {
/*Map tmpMap= new HashMap();
tmpMap.put(i, rsList.get(i));*/
UserInfo userInfo = (UserInfo) rsList.get(i);
Label label3=new Label(0,i+1,(i+1)+"");
//将定义好的单元格添加到工作表中
sheet.addCell(label3);
List list =getContent(userInfo);
Label label = null;
for(int k = 0;k <list.size(); k++){
label=new Label(k+1,i+1,list.get(k).toString());
sheet.addCell(label);
}
/* for (int j=0;j<columns.length;j++) {
String abc = null;
if(j == 0){
abc = userInfo.getCompanyName();
}
if(j == 1){
abc = userInfo.getUserName();
}
if(j == 2){
abc = userInfo.getMobileNumber();
}
Label label=new Label(j+1,i+1, abc);
将定义好的单元格添加到工作表中
}*/
}
//写入数据并关闭文件
book.write();
book.close();
}catch(Exception e)
{
e.printStackTrace();
}
return null;
}
分享到:
相关推荐
在Java开发中,生成和处理Excel文件是一...总的来说,通过JXL库,Java开发者可以方便地生成和打印Excel报表,满足各种数据展示和导出的需求。尽管JXL有一些限制,但其简单易用的API使得它成为小型项目的一个不错选择。
在描述中提到的“jxl导出excel工具类”,通常会包含以下功能: 1. **初始化工作簿**:创建一个新的`Workbook`对象,这是Excel文件的基本单位,可以包含多个工作表。 2. **创建工作表**:在`Workbook`中添加新的`...
在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析领域。"java绝对生成excel报表"这个标题暗示了我们可以通过Java实现对Excel文件的创建和操作,确保能够生成精确的表格形式的数据报告。...
本篇文章将深入探讨如何利用`jxl`库来创建和导出Excel表格。 首先,我们需要在项目中引入`jxl`库。如果你的项目是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
在Java编程环境中,生成Excel报表是一项常见的任务,尤其在数据处理和数据分析中。Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件...
首先,我们来理解"JXL导出Excel数据表"这一主题。JXL(Java Excel API)是一个开源项目,它允许Java程序创建、修改和读取Excel文件。通过这个库,我们可以方便地在程序中动态生成Excel工作表,包括设置单元格格式、...
在Java编程环境中,导出Excel数据是一项常见的任务,特别是在数据处理、报表生成或者数据分析的应用中。JXL库是一个广泛使用的开源库,它提供了方便的方式来读取、写入和操作Excel文件。下面我们将深入探讨如何使用...
在Java编程环境中,JXL库是一个非常流行...总之,使用JXL库在Java中导出Excel文件是一项常见的任务,尤其在数据分析和报表生成场景下。通过熟悉JXL的API,你可以轻松地定制化Excel文件的格式和内容,满足各种业务需求。
在本示例中,我们将探讨如何使用JXL导出Excel以及JXL的API文档。 1. **JXL的基本用法** - **创建工作簿(Workbook)**: 使用`Workbook.createWorkbook()`方法创建一个新的Excel工作簿对象。 - **创建工作表...
综上所述,Java JXL库提供了一种简单而有效的途径,使得在Java应用程序中实现Excel文件的导出,包括创建多Sheet页的功能,这对于数据报表和分析场景特别实用。通过掌握JXL库的使用,开发者能够方便地将程序中的数据...
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`jxl`库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。在这个特定的场景中,我们将探讨如何...
java导出Excel 时候 相同行合并(可合并多列); 已测试通过;
总结来说,"jxl导出excel.zip"提供的工具可以帮助Java开发者高效地处理Excel导出任务,利用JXL库的强大功能,结合自定义的工具类和注解,能够灵活、便捷地将业务数据转换为用户友好的Excel文件。对于需要处理大量...
综上所述,Java JXL库是Java开发者处理Excel文件的强大工具,尤其在数据导入导出、报表生成等场景下,其简洁的API和丰富的功能使其成为不可或缺的选择。然而,对于需要处理.xlsx格式的新版Excel文件,开发者可能需要...
### Java通过POI和JXL给Excel动态添加水印 #### 概述 在实际工作中,经常需要对敏感或重要的Excel文件进行保护措施,比如添加水印。这不仅可以增加文档的专业性,还可以作为版权保护的一种手段。本文将详细介绍...
Java使用JXL库进行Excel导入导出是一种常见的技术实践,特别是在需要在Java...无论选择哪种库,理解如何在Java中与Excel交互是开发过程中的重要技能,特别是在需要从Web应用中导出报表或处理用户上传的Excel文件时。
虽然提供的压缩包子文件名`jxl导出Excel基础.mht`并未包含具体的代码示例,但根据文件类型(MHT是单个文件网页),我们可以推测这个文件可能包含了详细的代码示例或教程,用于辅助理解上述的导出流程。 总结起来,`...
本文将详细探讨`jxl`库在导出Excel报表方面的应用,以及如何利用它来实现一个简单的报表生成过程。 首先,我们需要了解`jxl`库的基本结构。`jxl`库提供了多种类和接口,如`Workbook`、`Sheet`、`Cell`等,它们分别...
Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下将详细讲解如何使用JXL库来生成Excel文件。 首先,我们需要在...
jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不依赖Windows...