File tempFile=new File("d:/temp/output.xls");
WritableWorkbook workbook = Workbook.createWorkbook(tempFile);
WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);
//一些临时变量,用于写到excel中
Label l=null;
jxl.write.Number n=null;
jxl.write.DateTime d=null;
//预定义的一些字体和格式,同一个Excel中最好不要有太多格式
WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD,
false, Underlinestyle.NO_UNDERLINE, jxl.format.Colour.BLUE);
WritableCellFormat headerFormat = new WritableCellFormat (headerFont);
WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD,
false, Underlinestyle.NO_UNDERLINE, jxl.format.Colour.RED);
WritableCellFormat titleFormat = new WritableCellFormat (titleFont);
WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD,
false, Underlinestyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat detFormat = new WritableCellFormat (detFont);
NumberFormat nf=new NumberFormat("0.00000"); //用于Number的格式
WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf);
DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的
WritableCellFormat dateFormat = new WritableCellFormat (detFont, df);
//剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中
l=new Label(0, 0, "用于测试的Excel文件", headerFormat);
sheet.addCell(l);
//add Title
int column=0;
l=new Label(column++, 2, "标题", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "日期", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "货币", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "价格", titleFormat);
sheet.addCell(l);
//add detail
int i=0;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(column++, i+3, "CNY", detFormat);
sheet.addCell(l);
n=new jxl.write.Number(column++, i+3, 5.678, priceFormat);
sheet.addCell(n);
i++;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(column++, i+3, "SGD", detFormat);
sheet.addCell(l);
n=new jxl.write.Number(column++, i+3, 98832, priceFormat);
sheet.addCell(n);
//设置列的宽度
column=0;
sheet.setColumnView(column++, 20);
sheet.setColumnView(column++, 20);
sheet.setColumnView(column++, 10);
sheet.setColumnView(column++, 20);
workbook.write();
workbook.close();
WritableWorkbook workbook = Workbook.createWorkbook(tempFile);
WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);
//一些临时变量,用于写到excel中
Label l=null;
jxl.write.Number n=null;
jxl.write.DateTime d=null;
//预定义的一些字体和格式,同一个Excel中最好不要有太多格式
WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD,
false, Underlinestyle.NO_UNDERLINE, jxl.format.Colour.BLUE);
WritableCellFormat headerFormat = new WritableCellFormat (headerFont);
WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD,
false, Underlinestyle.NO_UNDERLINE, jxl.format.Colour.RED);
WritableCellFormat titleFormat = new WritableCellFormat (titleFont);
WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD,
false, Underlinestyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat detFormat = new WritableCellFormat (detFont);
NumberFormat nf=new NumberFormat("0.00000"); //用于Number的格式
WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf);
DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的
WritableCellFormat dateFormat = new WritableCellFormat (detFont, df);
//剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中
l=new Label(0, 0, "用于测试的Excel文件", headerFormat);
sheet.addCell(l);
//add Title
int column=0;
l=new Label(column++, 2, "标题", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "日期", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "货币", titleFormat);
sheet.addCell(l);
l=new Label(column++, 2, "价格", titleFormat);
sheet.addCell(l);
//add detail
int i=0;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(column++, i+3, "CNY", detFormat);
sheet.addCell(l);
n=new jxl.write.Number(column++, i+3, 5.678, priceFormat);
sheet.addCell(n);
i++;
column=0;
l=new Label(column++, i+3, "标题 "+i, detFormat);
sheet.addCell(l);
d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
sheet.addCell(d);
l=new Label(column++, i+3, "SGD", detFormat);
sheet.addCell(l);
n=new jxl.write.Number(column++, i+3, 98832, priceFormat);
sheet.addCell(n);
//设置列的宽度
column=0;
sheet.setColumnView(column++, 20);
sheet.setColumnView(column++, 20);
sheet.setColumnView(column++, 10);
sheet.setColumnView(column++, 20);
workbook.write();
workbook.close();
我正在做的项目里定义了很多样式,好像速度也不算慢,还有一些其他方面的定义,补充到下面:
//构造格式:ARIAL字体、10号、粗体、非斜体、无下划线、黑色
WritableFont fmtx2TotalCaption = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,
false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
WritableCellFormat totalx2Format = new WritableCellFormat(fmtx2TotalCaption);
//文字垂直居中对齐
totalx2Format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
//文字水平居中对齐
totalx2Format.setAlignment(jxl.format.Alignment.CENTRE);
//边框深蓝色
totalx2Format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN,
jxl.format.Colour.DARK_BLUE);
//设置底色为冰蓝
totalx2Format.setBackground(jxl.format.Colour.ICE_BLUE);
sheet.mergeCells(0, row, 8, row); //合并单元格,row 到 row 行,0 到 8 列
sheet.setRowView(row, 600);// 第 row 行的高度
WritableFont fmtx2TotalCaption = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,
false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);
WritableCellFormat totalx2Format = new WritableCellFormat(fmtx2TotalCaption);
//文字垂直居中对齐
totalx2Format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
//文字水平居中对齐
totalx2Format.setAlignment(jxl.format.Alignment.CENTRE);
//边框深蓝色
totalx2Format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN,
jxl.format.Colour.DARK_BLUE);
//设置底色为冰蓝
totalx2Format.setBackground(jxl.format.Colour.ICE_BLUE);
sheet.mergeCells(0, row, 8, row); //合并单元格,row 到 row 行,0 到 8 列
sheet.setRowView(row, 600);// 第 row 行的高度
另外就是要在 Action(servlet) 中这么写,IE就会直接弹出保存文件的对话框(注意要占用当前窗口):
String title = "XXXX统计";
OutputStream out = response.getOutputStream();
WritableWorkbook wb = Workbook.createWorkbook(out);
response.setContentType("aplication/vnd.ms-excel");
response.addHeader("Content-Disposition","inline; filename=" + new String(title.getBytes("GB2312"),"ISO8859_1") + ".xls"); //有中文必须转码
OutputStream out = response.getOutputStream();
WritableWorkbook wb = Workbook.createWorkbook(out);
response.setContentType("aplication/vnd.ms-excel");
response.addHeader("Content-Disposition","inline; filename=" + new String(title.getBytes("GB2312"),"ISO8859_1") + ".xls"); //有中文必须转码
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1526490
相关推荐
在Java编程中,有时我们需要将数据导出到Excel文件中,这时可以使用开源库JExcelAPI(简称jxl)。这个库允许我们方便地读取、写入和操作Excel文件,而无需依赖Microsoft Office。本文将深入探讨如何使用jxl库导出...
### 使用JXL库下载并处理Excel文件 #### 知识点概述 本文将详细介绍如何使用JXL库结合Java网络编程技术来实现从指定URL下载Excel文件,并将其保存到本地指定目录的功能。此外,我们还将简单介绍如何使用JXL库读取...
这篇博客“JXL 下载 Excel 文档”可能是介绍如何使用JXL库在Java程序中创建、读取或修改Excel文件。 描述中提到的链接指向了一个ITEYE博客文章,虽然具体内容没有给出,但我们可以推测博主可能详细介绍了使用JXL库...
通过下载并引入`jxl.jar`,你可以在Java项目中轻松地读取和写入Excel数据。结合示例代码`Test.java`,可以快速掌握基本的Excel操作,从而实现更多自定义功能。记住,为了确保程序正常运行,需要确保`jxl.jar`已正确...
在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库是一个广泛使用的开源库,专门用于读取和写入Microsoft Excel文件。本篇将详细介绍如何使用`jxl`库进行Excel的操作,包括导入、导出、读取以及更新Excel...
java jxl Excel 读写 合并单元格 下载 等实例
`jxl`库是一个广泛使用的开源库,它允许开发者用Java读取、写入和修改Excel文件。在这个特定的场景中,我们将探讨如何利用`jxl`库为Excel文件添加水印,特别关注`setWaterMarkImage`方法。 首先,`jxl`库不直接提供...
Excel下载涉及从服务器生成Excel文件并提供给客户端下载。主要步骤如下: 1. 根据需要从数据库或其他数据源获取数据。 2. 使用JXL的`Workbook.createWorkbook()`方法创建一个新的工作簿对象。 3. 创建一个`Sheet`...
上述代码中,`doGet`方法创建了一个Servlet,当用户访问特定URL时,Servlet会生成一个Excel文件并作为HTTP响应的一部分返回,浏览器通常会提示用户下载。 值得注意的是,JXL库只支持Excel 97-2003格式(.xls),...
`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `...
"jxl模版生成excel" 指的是使用JExcelAPI(简称jxl)这个Java库来创建基于模板的Excel文件。JExcelAPI是一个开源项目,允许程序开发者读写Microsoft Excel文件,它支持从Java数据结构直接导出到Excel格式,同时也可...
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。
"JXLExcel生成简单excel表"是一个基于JXL库的插件,它简化了使用Java创建Excel文件的过程,使得开发者无需深入理解JXL库的复杂性就能快速生成基本的Excel表格。 JXL,全称Java Excel API,是一个开源的Java库,专门...
### Java JXL Excel 下载(提示保存)知识点详解 #### 一、JXL库简介 JXL 是一款用于处理Excel文件的Java库,它能够帮助开发者读取、写入、编辑Excel文件。JXL适用于处理.xls格式的Excel文件,而针对.xlsx格式,则...
1. **安装与引入**:在项目中使用`jxl`库,首先需要下载对应的jar文件(如`jxl.jar`),然后将其添加到项目的类路径中。对于Maven项目,可以在`pom.xml`中添加如下依赖: ```xml <groupId>...
标题中的“jxl excel批量导入”指的是使用Java的jxl库来处理Excel文件,实现数据的批量读取和写入。jxl是一个广泛使用的开源Java库,它允许开发者读取、写入和修改Microsoft Excel文件。这个过程在处理大量数据时...
在Java编程环境中,处理Excel文件是一项常见的任务,而JXL库提供了一个简洁的API来实现这一功能。JXL是一个开源的Java库,专门用于读取和写入Microsoft Excel文件(.xls格式)。在这个示例中,我们将深入探讨如何...
这里我们将深入探讨如何使用jxl.jar库在Android环境中操作Excel表格,特别是处理隐藏表的情况。 首先,jxl是一个Java库,它允许我们以编程方式读取和写入Microsoft Excel文件。由于Android系统基于Java,因此可以...