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 ...
随机推荐
- c语言warning总结
1.function declaration isn’t a prototype括号中无参数,也要加void 2.array subscript is above array bounds数组下标大于 ...
- php面向对象之final的应用
final从英文字面上很容易理解,翻译成中文就是“最终的”之意.在php面向对象编程中,final的应用主要有两个作用: 1.使用final修饰的类,该不能被继承 01 <?php 02 ...
- select 标签的两种方式(以动态插入为例)
标准形式: html <select id="sorte_piceid_copy" name="tea" style="display:none ...
- 国内npm镜像源推荐及使用
NPM(Node Package Manager),是NodeJs的模块依赖管理工具.由于Npm源在国外,使用起来不方便, 故需要国内可靠的npm源可以使用,现整理如下: 一.国内镜像 1.淘宝NPM ...
- C#,java,C++ 等变量命名规则
命名规则: 必须以“字母” .“_”或“@”开头,不要以数字开头. 后面可以跟任意“数字”,“字母”,“下划线”. ---注意:自己起的名字尽量避免与系统中的关键字重复.不推荐重新定义相同的变量名. ...
- Appium(客户端版)解决每次运行Android,都安装Appium Setting和Unlock的方法
遇到的问题:使用的Appium界面的server进行启动,每次启动时都会安装Appium Setting和Unlock文件. 通过log可以看到安装路径如下: Appium Setting安装包路 ...
- Linux下Git和GitHub使用方法总结
来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...
- linux 登录档配置分析
登录档的重要性 解决系统方面的错误: 解决网络服务的问题: 过往事件记录簿: Linux 常见的登录档档名 /var/log/cron: 你的 crontab 排程有没有实际被进行? 进行过程有没有发 ...
- 如何取消MSSQL自带智能提示步骤,使用第三方智能提示插件
步骤1如下: [工具]——[选项]——[文本编辑器]——[Transact-SQL]——[IntelliSense]——[Transact-SQL IntelliSense 设置]——(取消选择)—— ...
- getWinSystemIcon
#include <QtGui/QImage>#include <QtGui/QPixmap>void getSystemIcon(const chConstStringA&a ...