收藏 分享(赏)

JExcelApi学习笔记.docx

上传人:weiwoduzun 文档编号:5243862 上传时间:2019-02-13 格式:DOCX 页数:7 大小:31.48KB
下载 相关 举报
JExcelApi学习笔记.docx_第1页
第1页 / 共7页
JExcelApi学习笔记.docx_第2页
第2页 / 共7页
JExcelApi学习笔记.docx_第3页
第3页 / 共7页
JExcelApi学习笔记.docx_第4页
第4页 / 共7页
JExcelApi学习笔记.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、在公司的项目中,有 excel 生成、导出的需求,因此学习了用 JXL 读写 excel,做个简单的笔记,以供参考。 实现用 java 操作 excel 的工具,一般用的有两个:一个是 JXL,另一个是 apache 的POI。JXL 的功能不如 POI 强大,但是对中文的支持性好,因此在中文项目中用 JXL 的比较多。 源代码介绍 JXL 的源代码有 11 个包: biff 是 binary interchange file format(二进制转换文件格式)的缩写,在源代码中,JXL 中有好几个带有 biff 的包,我们在日常应用中要用到的是 API 中介绍的四个包:jxl,jxl.dem

2、o,jxl.format,jxl.write。还有两个包:mon,mon.logger,这两个也是jxl 内部使用的包括 Assert(断言,测试一个条件并可能是程序终止) 、LengthConvert( 单元格等的长度转换)、Logger(写日志)等通用的功能。 JXL 具体用法 其实,在 jxl.demo 包中已经很详尽地列举了 JXL 的基本用法,这里做个简单的记录,以供学习参考。 创建一个工作簿: 如果只是读文件而不需要写操作: Workbook wb = Workbook.getWorkbook(file path); 可读写操作: WritableWorkbook wwb = Wo

3、rkbook.creatWorkbook(); 创建工作表: WritableSheet sh = wwb.creatSheet(“sheet name“,“sheet index“); jxl.demo.CSV:类 CSV 是一个简单的演示类,它使用 JXL 的 api 来展示 excel 97 电子表格所包含的内容,需要传入参数 workbook 和 outputstream 等。 public class TestDemo public static String path = System.getProperty(“user.dir“); Test public void testCs

4、v() try File file = new File(path + “outDoc.xls“); Workbook wb = Workbook.getWorkbook(file); OutputStream os = System.out; CSV csv = new CSV(wb, os, “UTF-8“, true); catch (Exception e) 控制台输出(每个单元格的内容用 “,“隔开): * 集团 * test1,test2,test3 jxl.demo.Demo:这是主要的演示类,解释了命令行开关用于决定如何调用演示程序。 jxl.demo.Escher/Esche

5、rDrawingGroup:如何展示图层数据的演示类。Escher:the Office Drawing Layer. jxl.demo.Features:输出单元格的特征。 (jxl.CellFeatures)cf.getComment():获取单元格的批注; cf.getDataValidationList():获取单元格的数据有效性特征。 控制台输出: Cell A3 contents: 类别 comment: author: test,test valadation: 0.0 = x = 100.0; x strlen jxl.demo.Formulas:输出单元格的公式。 (jxl.

6、FormulaCell) fc.getFormula():获取单元格的公式。 控制台输出: Formula in C40 value: 0 formula: C1+C2 jxl.demo.ReadWrite jxl.demo.Write jxl.demo.XML (1)添加的字体样式 jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true); WritableFont()方法里参数说明: 这个方法算是一个容器,可以放进去好多属性 第一个:字体 ,

7、WritableFont.TIMES 第二个:大小,18 第三个: 是否为粗体,WritableFont.BOLD 或 WritableFont.NO_BOLD 第四个: 判断是否为斜体,选择 true 时为斜体 第五个: 样式,UnderlineStyle.NO_UNDERLINE 下划线 第六个: 颜色,jxl.format.Colour.RED 字体颜色是红色的 jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf); jxl.write.Label labelC = new jxl.write.L

8、abel(0, 0, “This is a Label cell“,wcfF); ws.addCell(labelC); 在 Label()方法里面有三个参数 第一个是代表列数, 第二是代表行数, 第三个代表要写入的内容 第四个是可选项,是输入这个 label 里面的样式 然后通过写 sheet 的方法 addCell()把内容写进 sheet 里面。 (2)添加带有 formatting 的 Number 对象 /保留两位小数,如果小数位为 0 则不显示 jxl.write.NumberFormat nf = new jxl.write.NumberFormat(“#.#“); /保留两位小

9、数,如果小数位不足两位,用 0 填充 jxl.write.NumberFormat nf = new jxl.write.NumberFormat(“#.00“); (3)添加 Number 对象 (3.1)显示 number 对象数据的格式 Java 代码 1. jxl.write.NumberFormat nf = new jxl.write.NumberFormat(“#.#“); 2. jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf); 3. 4. jxl.write.Number labe

10、lNF = new jxl.write.Number(1, 1, 3.1415926, wcfN); 5. ws.addCell(labelNF); Number()方法参数说明: 前两上表示输入的位置 第三个表示输入的内容 (4)添加 Boolean 对象Java 代码 1. jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false); 2. ws.addCell(labelB); (5)添加 DateTime 对象Java 代码 1. jxl.write.DateTime labelDT = new jxl.write.Dat

11、eTime(0, 3, new java.util.Date(); 2. ws.addCell(labelDT); DateTime()方法的参数说明 前两个表示输入的位置 第三个表示输入的当前时间 (6)添加带有 formatting 的 DateFormat 对象 这个显示当前时间的所有信息,包括年月日小时分秒Java 代码 1. jxl.write.DateFormat df = new jxl.write.DateFormat(“dd MM yyyy hh:mm:ss“); 2. jxl.write.WritableCellFormat wcfDF = new jxl.write.Wr

12、itableCellFormat(df); 3. jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF); 4. ws.addCell(labelDTF); (7)添加带有字体颜色 Formatting 的对象Java 代码 1. jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.N

13、O_UNDERLINE, jxl.format.Colour.RED); 2. jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 3. 4. import jxl.format.* 5. jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);

14、 (8)设置单元格样式 Java 代码 1. jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 2. wcfFc.setWrap(true);/需多行显示时,设置该属性,并在内容中加入换行符“n“ 3. wcfFC.setBackGround(jxl.format.Colour.RED);/设置单元格的颜色为红色 4. wcfFC = new jxl.write.Label(6,0,“i love china“,wcfFC); 5. 6. jxl.write.WritableFont wfc

15、= new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); 7. jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 8. 9. import=“jxl.format.* 10. jxl.write.WritableFont wfc = new jxl.write.WritableFont(

16、WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN); 高级操作 一、 数据格式化 在 Excel 中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。 1、 字串格式化 字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由 WritableFont 和WritableCellFormat 类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,为方便叙述,我们为每一行命令加了编号: WritableFont

17、 font1= new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); WritableCellFormat format1=new WritableCellFormat(font1); Label label=new Label(0,0,”data 4 test”,format1) 其中指定了字串格式:字体为 TIMES,字号 16,加粗显示。WritableFont 有非常丰富的构造子,供不同情况下使用,jExcelAPI 的 java-doc 中有详细列表,这里不再列出。 处代码使用了 WritableCellFormat 类

18、,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。 处使用了 Label 类的构造子,指定了字串被赋予那种格式。 在 WritableCellFormat 类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们上面的实例,可以指定: /把水平对齐方式指定为居中 format1.setAlignment(jxl.format.Alignment.CENTRE); /把垂直对齐方式指定为居中 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); 二、单元格操作 Excel 中很重

19、要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI 提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的 API。 1、 合并单元格 WritableSheet.mergeCells(int m,int n,int p,int q); 作用是从(m,n)到(p,q)的单元格全部合并,比如: WritableSheet sheet=book.createSheet(“第一页”,0); /合并第一列第一行到第六列第一行的所有单元格 sheet.mergeCells(0,0,5,0); 合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。 2、 行高和列宽 WritableSheet.setRowView(int i,int height); 作用是指定第 i+1 行的高度,比如: /将第一行的高度设为 200 sheet.setRowView(0,200); WritableSheet.setColumnView(int i,int width); 作用是指定第 i+1 列的宽度,比如: /将第一列的宽度设为 30 sheet.setColumnView(0,30); jExcelAPI 还有其他的一些功能,比如插入图片等,这里就不再一一介绍,读者可以自己探索。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 办公软件应用

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报