### Jxl 使用总结 在本篇文章中,我们将详细介绍 Jxl 这个 Java Excel API 的一些基本用法,以及如何利用 Jxl 对 Excel 表格进行操作。Jxl 是一款非常实用且易于使用的 Java 库,它允许开发人员通过简单的代码就能实现对 Excel 文件的读写功能。 #### 一、Jxl 库简介 Jxl(Java Excel)是一个用于读取和写入 Microsoft Excel 文件的 Java 库。与 Apache POI 相比,Jxl 在早期更加流行,因为它使用起来更为简单直观。然而随着时间的发展,Jxl 的更新维护已经停止,目前最新版本为 2.6.10,而 Apache POI 由于其功能更加强大、支持格式更全面等特点,在实际应用中逐渐取代了 Jxl 的地位。不过对于一些简单的应用场景,Jxl 仍然可以提供很好的支持。 Jxl 可以从以下几个地址下载: - http://nchc.dl.sourceforge.net/sourceforge/jexcelapi/jexcelapi_2_6_10.zip - http://www.andykhan.com/jexcelapi/download.html - http://www.andykhan.com/jexcelapi/tutorial.html - http://www.andykhan.com/jexcelapi/ #### 二、创建 Workbook 在使用 Jxl 进行 Excel 操作之前,首先需要创建一个 Workbook 对象。可以通过以下方式创建: ```java WritableWorkbook wwb = Workbook.createWorkbook(os); ``` 这里 `os` 是一个 `OutputStream` 对象,通常来源于一个 `File`。如果想要从文件读取 Workbook,可以使用如下方式: ```java Workbook.getWorkbook(java.io.File file); ``` 注意,`Workbook.getWorkbook()` 方法是静态方法,可以直接调用。 #### 三、创建 Sheet 在创建了 Workbook 之后,接下来需要创建一个或多个 Sheet。这可以通过 `WritableWorkbook` 的 `createSheet` 方法来完成: ```java WritableSheet sheet = wwb.createSheet("Sheet1", 0); ``` 这里 `"Sheet1"` 是 Sheet 的名称,`0` 表示这是第一个 Sheet,索引从 0 开始计数。 #### 四、向 Sheet 添加单元格 添加单元格到 Sheet 是一个非常重要的功能。Jxl 提供了多种类型的单元格,包括 Label(文本)、Number(数字)、Boolean(布尔值)等。 1. **添加文本单元格:** ```java Label label = new Label(column, row, "Hello World!"); sheet.addCell(label); ``` 其中 `column` 和 `row` 分别表示列和行的索引,都是从 0 开始计数的。 2. **添加数字单元格:** - 直接添加数字: ```java jxl.write.Number num = new jxl.write.Number(column, row, 123.45); sheet.addCell(num); ``` - 添加带有格式的数字: ```java jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##"); jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf); jxl.write.Number n = new jxl.write.Number(column, row, 2.451, wcf); sheet.addCell(n); ``` 3. **添加日期单元格:** ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdf.format(new Date()); Label dateLabel = new Label(column, row, dateStr); sheet.addCell(dateLabel); ``` 4. **添加布尔值单元格:** ```java jxl.write.Boolean bool = new jxl.write.Boolean(column, row, true); sheet.addCell(bool); ``` #### 五、合并单元格 为了使表格看起来更加整洁美观,有时我们需要将多个单元格合并成一个。这可以通过 `mergeCells` 方法来实现: ```java sheet.mergeCells(x, y, m, n); ``` 这里 `x` 和 `y` 表示合并区域的左上角坐标,`m` 和 `n` 表示合并区域的右下角坐标。 例如,合并从第 0 行第 6 列到第 3 行第 8 列的区域: ```java sheet.mergeCells(0, 6, 3, 8); Label mergedLabel = new Label(0, 6, "合并后的单元格"); sheet.addCell(mergedLabel); ``` #### 六、设置单元格样式 为了美化表格,我们可以为单元格设置不同的样式,比如居中对齐、边框颜色、背景颜色等: ```java WritableCellFormat wc = new WritableCellFormat(); wc.setAlignment(Alignment.CENTRE); wc.setBorder(Border.ALL, BorderLineStyle.THIN); wc.setBackground(Colour.RED); Label styledLabel = new Label(column, row, "", wc); sheet.addCell(styledLabel); ``` #### 七、设置字体 除了样式之外,我们还可以为单元格设置字体大小、类型等: ```java jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("Arial"), 14); WritableCellFormat fontFormat = new WritableCellFormat(wfont); Label fontLabel = new Label(column, row, "设置字体", fontFormat); sheet.addCell(fontLabel); ``` #### 八、保存和关闭文件 当我们完成了所有操作后,需要将更改保存到文件,并关闭 Workbook: ```java wwb.write(); wwb.close(); ``` 通过以上介绍,我们对 Jxl 的基本使用方法有了较为全面的了解。尽管 Jxl 已经不再更新,但在一些简单的场景下仍然能够满足需求。对于更复杂的 Excel 操作,推荐使用 Apache POI。
Jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。除了Jxl之外,还有Apache的一个POI项目,也可以操作Excel,两者相比之下:Jxl使用方便,但功能相对POI比较弱。POI使用复杂,上手慢,除了这个没啥说的了。
Jxl目前最新2.6.10,下载地址是:
http://nchc.dl.sourceforge.net/sourceforge/jexcelapi/jexcelapi_2_6_10.zip
http://www.andykhan.com/jexcelapi/download.html
http://www.andykhan.com/jexcelapi/tutorial.html
http://www.andykhan.com/jexcelapi/
http://www.andykhan.com/
API总结
1、创建或读取一个工作薄 Workbook
创建一个工作薄,就是整个Excel文档,
WritableWorkbook wwb = Workbook.createWorkbook(os);
其中os为一个文件输出流。当然还有很多其他的入参,比如File等。
Workbook不但能用来创建工作薄,也可以读取现有的工作薄,比如:
Workbook.getWorkbook(java.io.File file);
Workbook是一个很重要工具类,里面方法基本上都是static的,使用方便。
2、创建工作表 Sheet
创建工作表的方式是通过上面创建的WritableWorkbook对象来操作。
创建一个工作表:
createSheet(java.lang.String name, int index),
- 粉丝: 1
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip