jxl 处理 Excel 样式
jxl 能够操作的 excel 样式:
1. Workbook的格式设置(代表一个excel文件)
2. Sheet的格式设置(代表一个表格)
3. Cell的格式设置(代表一个单元格)
PS:此jxl API是基于jxl 2.6而来的
官方API:http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/
具体内容:
1. Workbook的格式,Workbook的格式由WorkbookSettings来设置,比较需要注意的是jxl的格式设置统一使用了有get/set方法的bean来操作,这样做的好处是不仅查看API设置格式变成方便,而且把Workbook的格式分离出来有得于扩展.WorkbookSettings的API我试过几个,在word 2010下没有一个起作用,也不知道为什么.不过jxl有一套默认的WorkbookSettings设置,一般情况下使用默认的就可以了,有什么特殊需要可以看API,不过API并不是特别详细.使用方式:
1 WorkbookSettings bookSettings = new WorkbookSettings();
bookSettings.setEncoding("UTF-8");
WritableWorkbook book = Workbook.createWorkbook(new File("E:/testwrite.xls"), bookSettings);
2.Sheet的格式由SheetSettings来设置,使用方式:
WritableWorkbook book = Workbook.createWorkbook(new File("E:/testwrite.xls"), bookSettings);
WritableSheet sheet = book.createSheet("sheet1", 0);
SheetSettings settings = sheet.getSettings(); // sheet格式
settings.setDefaultColumnWidth(6);// 默认字体是10,所以刚好适应6个字符
settings.setDefaultRowHeight(400);// 显示是10像素
几个用有的API:
a) setDefaultColumnWidth/setDefaultRowHeight设置单元格默认的宽度与高度,宽度的大小是根据当前的默认字体的大小来设置的,而高度则是适应的,除非 你设置了高度,高度的单位是设置值1/20像素.
PS:所有的格式都是在book.write()才写进excel文件的.因此可以对参数在write之前进行修改.
b) setHorizontalFreeze/setVerticalFreeze设置列,行的固定,这个是从1开始算起的.
c) setHeader/setFooter设置打印时的页头与页尾的输出内容,在SheetSettings里的很多设置都和打印的格式有关.
3. Cell的格式设置由WritableCellFormat去设定,Cell有三种类型的格式:文本格式,数字格式和日期格式,与它们相关的格式都在jxl.write.*中可以找到.
几个有用API:
a) 文本处理,使用WritableFont类来设置格式,能够设置文本的字体,大小(像素),是否加粗,是否斜体,是否有下划线,颜色,上下标的格式:
// 文字处理
WritableFont font = new WritableFont(WritableFont.ARIAL);
// 设置字体有arial,Times New Roman,Courier New,Tahoma
font.setBoldStyle(WritableFont.BOLD); // 加粗
font.setItalic(true); // 斜体
font.setUnderlineStyle(UnderlineStyle.DOUBLE); // 下划线
font.setColour(Colour.BLUE_GREY); // 字体颜色
font.setPointSize(20); // 字体大小
font.setScriptStyle(ScriptStyle.SUBSCRIPT); // 是否上下标
WritableCellFormat format = new WritableCellFormat(font);
Label label = new Label(0, 0, "abcdef", format);
sheet.addCell(label);
b) 超文本处理,使用WritableHyperlink设置格式,能够设置一定单元格内点击打开网页或者本地文件.
// 超文本处理
WritableHyperlink link = new WritableHyperlink(0,4,0,5, new URL("http://www.baidu.com"),"百度");
sheet.addHyperlink(link);// 打开网页 WritableHyperlink link1 = new WritableHyperlink(0, 6, new File("E:/test.xls"));
sheet.addHyperlink(link1); // 打开本地excel
c) 数字处理,使用NumberFormat设置数字格式,可以使用自定义的格式,通过使用#号来决定保留的数位,不足#号的长度的不会用0补充,还可以用0符号,这个会进行补充0.
// 四舍五入,数字处理
NumberFormat numberFormat = new NumberFormat("0000000.0000");
WritableCellFormat format1 = new WritableCellFormat(numberFormat);
Number number = new Number(0, 1, 3234.62, format1);
sheet.addCell(number);
d) 日期处理,jxl有自带的格式,不过格式自己也会用啦
// 日期格式处理
Date time = Calendar.getInstance().getTime();
DateFormat dateFormat = new DateFormat("yyyy-MM-dd HH:mm:ss");
WritableCellFormat format2 = new WritableCellFormat(dateFormat);
DateTime timeCell = new DateTime(0, 2, time, format2);
sheet.addCell(timeCell);
e) 图片处理:
// 图片处理
WritableImage writableImage = new WritableImage(10,10,50,50, new File("E:/blue.png"));
sheet.addImage(writableImage);
PS:记得close book流,清理内存.
book.write();
book.close();
jxl 处理 Excel 样式的更多相关文章
- JXL解析Excel表格内容到数据库
java中常用的解析Excel表格的工具一种是POI一种是JXL,POI功能强大,相比JXL稍嫌复杂,对表格样式的处理非常好:而JXL解析简单方便,对中文支持比较好. 工作中解析Excel内容上传到数 ...
- jxl导出Excel中需要跳过的的坑
正如上篇文章(JXL封装不能使用static关键字问题)所说,在jxl导出Excel时候如果频繁使用到WritableCellFormat去设置单元格的样式,这个时候经常会出现两种情况: 1.报警告: ...
- java利用jxl操作Excel
/** * 把从数据库查询到的数据,写入电子表格 * * @throws Exception */ public void createXls() throws Exception { Dao dao ...
- Java:JXL解析Excel文件
项目中,有需求要使用JXL解析Excel文件. 解析Excel文件 我们先要将文件转化为数据流inputStream. 当inputStream很大的时候 会造成Java虚拟器内存不够 抛出内存溢出 ...
- jxl读写excel的方法
jxl 只有excel基本的操作,代码操作比较方便,一般使用jxl就够了,对图片支持较好 poi功能比jxl强大但是比较吃内存,支持计算公式 具体参考链接 http://www.cnblogs. ...
- 利用jxl读取excel合并的单元格的一个小样例
工作中我们可能要把Excel文件的记录保存到数据库, 今天我用jxl读取Excel文件时遇到了合并格的问题,记录例如以下: 如Excel文件例如以下: watermark/2/text/aHR0cDo ...
- jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL
这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Exc ...
- Jxl创建Excel文件和解析Excel文件
import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; im ...
- java中使用jxl读取excel中的数据
package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impo ...
随机推荐
- WCF中常用的binding方式
WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务.WSHttpBinding: 比 Basi ...
- Winform 获取当前单击的控件名称 和 向窗体添加控件
Winform如何获取当前单击的控件名称,比如有100个Button 和一个button_Click()的按钮事件 ,分别点击不同按钮后显示所点击的按钮名称?private void button_C ...
- {MBR}{Grub}win7+Linux恢复MBR
准备:win7安装盘,Linux安装盘 Step1:在linux下查看一下硬盘的信息fdisk -l,找到hd0和ext分区的信息 Step2: 重启插入win7安装盘,对windows系统恢复Gru ...
- Sublime Text 3 配置Java开发
Sublime Text 3 配置Java开发 内嵌模式 在Sublime内部输出面板显示执行过程 配置JavaC - INSET.sublime-build 打开Sublime的包目录(选择菜单:P ...
- 苹果手机overflow:auto的卡顿
如果你对某个div或模块使用了overflow: scroll属性,在iOS系统的手机上浏览时,则会出现明显的卡顿现象.但是在android系统的手机上则不会出现该问题 通过一个早上的百度搜索和与前端 ...
- 关于Linux x64 Oracle JDK7u60 64-bit HotSpot VM 线程栈默认大小问题的整理
JVM线程的栈默认大小,oracle官网有简单描述: In Java SE 6, the default on Sparc is 512k in the 32-bit VM, and 1024k in ...
- PTA Insert or Merge
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- Citrix Reciver提示安装程序集错误
打开注册表查找是否有RegistrySizeLimit这个项目,如果有更改成8个f,如果没有就需要手动建立一个之后输入8个f,操作方法如下: 到了 HKEY_LOCAL_MACHINE\SYSTEM\ ...
- 使用OPENROWSET、Microsoft.ACE.OLEDB实现大数据量的高效导入
首先说明使用的环境是:java和Sqlserver. 最近公司需要进行大数据量的导入操作.原来使用的是Apache POI,虽然可以实现功能,但是因为逻辑处理中需要进行许多校验,处理速度太慢,使用多线 ...
- JSP中文乱码问题
参考此URL http://blog.csdn.net/beijiguangyong/article/details/7414247 eclipse 设置: