最近,完成了一个网上报表系统,刚巧用到了一个JAVA操作excel表格的API.闲来无事,就将其大概的总结了一下.现阶段JAVA操作Excel的JAR主要有apache 的POI及jxl.因为现在的eclipse操作excel用的插件为jxl,所以在项目中就使用了jxl.想想两者都差不了太多.此简单系列为两个部分,一是API系列,另一部分则是应用系列.
一、API系列
Jxl的API主要有三个包,jxl,jxl.format,jxl.write.如果单独的分析API,可能对于更明确的了解此API没有太多的帮助,我们还是从Excel文件的层次来剥离此API吧.
一个excel文件由一个工作簿组成,一个工作簿又由n个工作表组成.每个工作表又由多个单元格组成.对应于Jxl中的结构为
| 读文件(包jxl) | 写文件(包jxl.write) | 说明 |
| Workbook | WritableWorkbook | 工作簿 |
| Sheet | WritableSheet | 工作表 |
| Cell/Image/Hyperlink | WritableCell/WritableImage//WritableHyperlink | 单元格/图像/超链接 |
单元格(此处指文本单元格,图像及链接和单元格做为一个层次)分为好多种,所以在API的设计中将Cell作为一个接口而存在.
对应的jxl中的结构为:
| 读文件(包jxl) | 写文件(包jxl.write) | 说明 |
| Cell | WritableCell | 单元格 |
| BooleanCell | Boolean | 布尔值单元格 |
| DateCell | DateTime | 时间单元格 |
| ErrorCell |
| 形式错误的单元格 |
| LabelCell | Label | 文本单元格 |
| NumberCell | Number | 数字单元格 |
| FormualCedll | Formual | 公式单元格 |
|
| Blank | 空格单元格 |
| BooleanFormualCell |
| 布尔公式单元格 |
| DateFormualCell |
| 时间公式单元格 |
| ErrorFormualCell |
| 错误公式单元格 |
| StringFormualCell |
| 文本公式单元格 |
| NumberFormualCell |
| 数字公式单元格 |
而有的时候,我们可能将几个单元格作为一个整体来处理,在 API 中对应的则是:
jxl.Range
虽然数据是电子表格的核心,但是同时其也需要一些辅助类 比如文件格式设置,工作表设置与显示效果.单元格设置与显示效果等.按照其层次,则依次有以下接口或类.
| 读文件(包jxl) | 写文件(包jxl.write) | 说明 |
| WorkbookSettings | WorkbookSettings(包jxl) | 设置workbook属性的bean |
| SheetSettings | SheetSettings(包jxl) | 设置具体sheet的属性的bean(比如表头表底等) |
| HeaderFooter | HeaderFooter(包jxl) | 表示表头表底类 |
| HeaderFooter.Contents | HeaderFooter.Contents(包jxl) | 具体表头表底设置 |
| CellFeatures | WritableCellFeautres | 表格内容相关设置(验证) |
| CellReferenceHelper |
| 得到引用单元格相关属性 |
| CellType |
| 表格相关类型 |
| CellView | CellView(包jxl) | 表格视图相关设置 |
| CellFormat | WritableCellFormat | 表格显示样式设置 |
|
| BoldStyle | 边框枚举 |
|
| DateFormat | 时间格式 |
|
| DateFormats | 时间格式枚举 |
|
| NumbreFormat | 数据格式 |
|
| NumbreFormats | 数字模式枚举 |
|
| WritableFont | 字体设置 |
|
| WriteableFont.Fontname | 静态字体内部类 |
最后,关于Jxl.format包.此包主要是一些与具体样式有关的接口和枚举.不进行具体描述.第一部分完.
本文详细介绍了Jxl API的结构和使用方法,包括读写Excel文件的功能,并解释了工作簿、工作表、单元格等概念及其对应的API类。
 API转&spm=1001.2101.3001.5002&articleId=83846904&d=1&t=3&u=8b1efea7be82412ba0a847a1ca6566b3)

被折叠的 条评论
为什么被折叠?



