最近,完成了一个网上报表系统,刚巧用到了一个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包.此包主要是一些与具体样式有关的接口和枚举.不进行具体描述.第一部分完.