【转载】JExcelApi(JXL)学习笔记
源代码介绍
JXL的源代码有11个包:
biff是binary interchange file format(二进制转换文件格式)的缩写,在源代码中,JXL中有好几个带有biff的包,我们在日常应用中要用到的是API中介绍的四个包:jxl,jxl.demo,jxl.format,jxl.write。还有两个包:jxl.common,jxl.common.logger,这两个也是jxl内部使用的包括Assert(断言,测试一个条件并可能是程序终止)、LengthConvert(单元格等的长度转换)、Logger(写日志)等通用的功能。
JXL具体用法
其实,在jxl.demo包中已经很详尽地列举了JXL的基本用法,这里做个简单的记录,以供学习参考。
创建一个工作簿:
如果只是读文件而不需要写操作:
Workbook wb = Workbook.getWorkbook(file path);
可读写操作:
WritableWorkbook wwb = Workbook.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 testCsv() {
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/EscherDrawingGroup:如何展示图层数据的演示类。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.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()方法里参数说明:
这个方法算是一个容器,可以放进去好多属性
第一个:字体 ,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.Label(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("#.##");
//保留两位小数,如果小数位不足两位,用0填充
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.00");
(3)添加Number对象
(3.1)显示number对象数据的格式
- jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
- jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
- , 1, 3.1415926, wcfN);
- ws.addCell(labelNF);
Number()方法参数说明:
前两上表示输入的位置
第三个表示输入的内容
(4)添加Boolean对象
- , 2, false);
- ws.addCell(labelB);
(5)添加DateTime对象
- , 3, new java.util.Date());
- ws.addCell(labelDT);
DateTime()方法的参数说明
前两个表示输入的位置
第三个表示输入的当前时间
(6)添加带有formatting的DateFormat对象
这个显示当前时间的所有信息,包括年月日小时分秒
- jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
- jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
- , 3, new java.util.Date(), wcfDF);
- ws.addCell(labelDTF);
(7)添加带有字体颜色Formatting的对象
- , WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
- jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
- import jxl.format.*
- ,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);
(8)设置单元格样式
- jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
- wcfFc.setWrap(true);//需多行显示时,设置该属性,并在内容中加入换行符"\n"
- wcfFC.setBackGround(jxl.format.Colour.RED);//设置单元格的颜色为红色
- ,0,"i love china",wcfFC);
- , WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
- jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
- import="jxl.format.*
- ,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);

- 大小: 3.7 KB
【转载】JExcelApi(JXL)学习笔记的更多相关文章
- 【转载】Java学习笔记
转载:博主主页 博主的其他笔记汇总 : 学习数据结构与算法,学习笔记会持续更新: <恋上数据结构与算法> 学习Java虚拟机,学习笔记会持续更新: <Java虚拟机> 学习Ja ...
- 【转载】TensorFlow学习笔记:共享变量
原文链接:http://jermmy.xyz/2017/08/25/2017-8-25-learn-tensorflow-shared-variables/ 本文是根据 TensorFlow 官方教程 ...
- (转载)西门子PLC学习笔记十五-(数据块及数据访问方式)
一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的 ...
- 【转载】SpringMVC学习笔记
转载于:SpringMVC笔记 SpringMVC 1.SpringMVC概述 MVC: Model(模型): 数据模型,提供要展示的数据,:Value Object(数据Dao) 和 服务层(行为S ...
- 转载的C#学习笔记
转载地址:http://www.cnblogs.com/renyanlei/p/4075065.html 最近在一个培训机构里面教授Net知识.每天都会带领学生学习c#知识.我希望把每天学习的笔记记录 ...
- 【转载】javadoc学习笔记和可能的注意细节
转载自:http://www.cnblogs.com/xt0810/p/3630996.html [前面的话] 这次开发项目使用jenkins做持续集成,PMD检查代码,Junit做单元测试,还会自动 ...
- 转载: GMM-HMM学习笔记
转载地址:http://blog.csdn.net/davidie/article/details/46929269 最近几天钻研了语音处理中的GMM-HMM模型,阅读了一些技术博客和学术论文,总算是 ...
- 【转载】MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
http://blog.csdn.net/xukai871105/article/details/39252653 0 前言 MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联 ...
- (转载)设计模式学习笔记(十一)——Facade外观模式
(转载)http://www.cnblogs.com/kid-li/archive/2006/07/10/446904.html Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户 ...
随机推荐
- CH5E01 乌龟棋【线性DP】
5E01 乌龟棋 0x5E「动态规划」练习 描述 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物.乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数).棋盘第1 格是唯一的起点,第N 格是终点 ...
- Ubuntu16.4下RStudio1.1.447 中文输入问题的解决方案
Ubuntu16.4下RStudio1.1.447 中文输入问题的解决方案参照:https://blog.csdn.net/matteoshenl/article/details/78603528 R ...
- Exchange Powershell:Get-Counter (List connections to OWA )
使用方法: Get-CASActiveUsers -server server1,server2 Get-CASMailbox | Get-CASActiveUsers $RPC = Get-Coun ...
- python基础-第四篇-4.1内置函数
lambda表达式 lambda表达式是对简单函数的精简化表达 语法结构:函数名 = lambda:运算表达式 def f1(a): a = a + 1 return a ret = f1(1) pr ...
- point in polygon algorithm
Point-In-Polygon Algorithm — Determining Whether A Point Is Inside A Complex Polygon © 1998,2006,200 ...
- Git查看、删除远程分支和tag
本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供markdown格式源码,欢迎使 ...
- 《iOS Human Interface Guidelines》——Popover
弹出框 弹出框是当人们点击一个控件或屏幕上一个区域时显示的一个暂时的界面. API NOTE 在iOS 8及以后的系统中.你能够使用UIPopoverPresentationController来显示 ...
- (3.14) set statistics io/time/profile /SET SHOWPLAN_ALL ON详解统计信息与执行计划
SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON 执行计划详细描述请参考(读懂执行计划) 对于语句的运行,除了执行计划本身,还有一些其他 ...
- 模块讲解----json与pickle模块的区别
1.在生产中,dumps和loads只进行一次,而且要用w把原来的数据冲掉,从而保证每次都是最新的. 2.虚拟机的快照,是每个快照都有一个文件,而不是全都不放在一起. 3.如果想生产好几个序列化,就生 ...
- centos7 vim显示行号
CentOS7下可能有n个账户,让vim显示行号有两种方法:仅让当前用户显示行号和让所有用户显示行号 一.仅让当前用户显示行号 输入命令:vim ~/.vimrc 写入:set nu 保存:wq ...