jexcelapi学习笔记一
在实际WEB项目开发过程中,常常需要我们开发WEB报表的功能,下面我们就学习一下两种常用的处理Excel表格的开源解决方案:Apache POI和JExcelApi(Jxl)的基本应用。
首先我们学习Jxl的用法:
1.jExcelApi开发环境的基本配置
首先从网站上下载jExcelApi,可以从这个下载地址:http://sourceforge.net/projects/jexcelapi/files/jexcelapi/下载。例如下载版本为2.6.12的JExcelApi,下载下来的文件为:jexcelapi_2_6_12.zip,解压后文件目录如下图:
其中docs目录下是API参考文档,src目录下是整个JExcelAPi的源代码,jx1.jar这个文件就是JExcelAPi打包的类库文件,如果要在项目中使用JExcelAPi只需要把jx1.jar文件的路径加入classpath中或项目lib目录下,对jxl更详细的分析请见:
http://www.cnblogs.com/xd502djj/archive/2011/08/15/2139394.html。
?
2.?JXL特点:?
1) 读取Excel95,97,2000,2003的数据;
2) 读取和写入Excel97及以后版本的公式;
3) 生成Excel2000,2003格式的电子表格;
4) 支持对字体,数字,日期的格式化;?
5) 支持对单元格加阴影和加色彩;?
6) 修改存在的工作表;
7) 支持图片的创建;
8) 日志记录可以定制;
3.Jxl 局限性:?
JExcelApi不能够生成和读取图表的信息;
这个信息当图表被拷贝的时候仍然保存;
当增加一个图片到表中,仅仅PNG格式被支持。
?
4.生成简单的Excel文件的示例:
?
public static void createExcel(OutputStream os) throws IOException,RowsExceededException, WriteException{// 创建工作区WritableWorkbook workbook = Workbook.createWorkbook(os);// 创建新的一页,sheet只能在工作簿中使用WritableSheet sheet = workbook.createSheet("test sheet1", 0);// 通过函数WritableFont()设置字体样式// 第一个参数表示所选字体// 第二个参数表示字体大小// 第三个参数表示粗体样式,有BOLD和NORMAL两种样式// 第四个参数表示是否斜体,此处true表示为斜体// 第五个参数表示下划线样式// 第六个参数表示颜色样式,此处为RedWritableFont wf = new WritableFont(WritableFont.TIMES, 18,WritableFont.BOLD, true, UnderlineStyle.NO_UNDERLINE,Colour.RED);CellFormat cf = new WritableCellFormat(wf);// 创建单元格即具体要显示的内容,new Label(0,0,"用户") 第一个参数是column 第二个参数是row// 第三个参数是content,第四个参数是可选项,为Label添加字体样式WritableCell employee = new Label(0, 0, "雇员", cf);// 通过sheet的addCell方法添加Label,注意一个cell/label只能使用一次addCellsheet.addCell(employee);WritableCell sex = new Label(1, 0, "性别");sheet.addCell(sex);// 将内容写到输出流中,然后关闭工作区,最后关闭输出流workbook.write();workbook.close();os.close();}
?其中红色部分非常重要,write()方法是用于生成一个Excel文档,close()方法则用于使生成的Excel文档有效,否则不调用close()的话将会导致生成的Excel文档在打开时提示“文件的格式与扩展名指定的格式不一致”,如下图:
?