jxl是java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且 仅仅识别PNG格式。

使用如下:

搭建环境

将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。

基本操作

一、创建文件

拟生成一个名为“test.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:

package test; // 生成Excel的类 import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class CreateExcel { public static void main(String args[]) { try { // 打开文件 WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " )); // 生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet sheet = book.createSheet( " 第一页 " , 0 ); // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0) // 以及单元格内容为test Label label = new Label( 0 , 0 , " test " ); // 将定义好的单元格添加到工作表中 sheet.addCell(label); jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 ); sheet.addCell(number); // 写入数据并关闭文件 book.write(); book.close(); } catch (Exception e) { System.out.println(e); } } }

编译执行后,会产生一个Excel文件。

二、读取文件

以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:

package test; // 读取Excel的类 import java.io.File; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; public class ReadExcel { public static void main(String args[]) { try { Workbook book = Workbook.getWorkbook( new File( " test.xls " )); // 获得第一个工作表对象 Sheet sheet = book.getSheet( 0 ); // 得到第一列第一行的单元格 Cell cell1 = sheet.getCell( 0 , 0 ); String result = cell1.getContents(); System.out.println(result); book.close(); } catch (Exception e) { System.out.println(e); } } }

程序执行结果:test

三、修改文件

利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:

package test; import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class UpdateExcel { public static void main(String args[]) { try { // Excel获得文件 Workbook wb = Workbook.getWorkbook( new File( " test.xls " )); // 打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " ), wb); // 添加一个工作表 WritableSheet sheet = book.createSheet( " 第二页 " , 1 ); sheet.addCell( new Label( 0 , 0 , " 第二页的测试数据 " )); book.write(); book.close(); } catch (Exception e) { System.out.println(e); } } }

四、 数据格式化

在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。

字串格式化

字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和WritableCellFormat类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,为方便叙述,我们为每一行命令加了编号:

WritableFont 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类,这个类非常重要,通过它可以指定单元格的各种

属性,后面的单元格格式化中会有更多描述。

③处使用了Label类的构造子,指定了字串被赋予那种格式。

在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们上面的实例,可以指定:

// 把水平对齐方式指定为居中 format1.setAlignment(jxl.format.Alignment.CENTRE); / 把垂直对齐方式指定为居中 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

五、单元格操作

Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸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还有其他的一些功能,比如插入图片等,这里就不再一一介绍,读者可以自己探索。其中:如果读一个excel,需要知道它有多少行和多少列,如下操作:

Workbook book = Workbook.getWorkbook( new File( " 测试1.xls " )); // 获得第一个工作表对象 Sheet sheet = book.getSheet( 0 ); // 得到第一列第一行的单元格 int columnum = sheet.getColumns(); // 得到列数 int rownum = sheet.getRows(); // 得到行数 System.out.println(columnum); System.out.println(rownum); for ( int i = 0 ; i < rownum; i ++ ) // 循环进行读写 { for ( int j = 0 ; j < columnum; j ++ ) { Cell cell1 = sheet.getCell(j, i); String result = cell1.getContents(); System.out.print(result);

java jxl 创建excel_JAVA利用JXL导出/生成 EXCEL相关推荐

  1. java后台处理excel_java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后 ...

  2. java jxl包_java利用JXL包操作Excel表

    源码 package test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; im ...

  3. pandas后台导出excel_利用pandas将numpy数组导出生成excel

    代码 # -*- coding: utf- -*- """ Created on Sun Jun :: @author: Bruce Lau ""&q ...

  4. springboot实现数据库数据导出生成Excel报表

    一.导入poi依赖 <!-- poi实现excel导入导出--><dependency><groupId>org.apache.poi</groupId> ...

  5. 微信小程序如何实现将数据导出生成excel

    码字不易,有帮助的同学希望能关注一下我的微信公众号:Code程序人生,感谢!代码自用自取. 这个需求也是我在接私活的时候遇到的,需求就是,要实现将指定数据库表的数据全部导出生成excel和按需导出,也 ...

  6. Html 中表格导出生成excel文件,解决中文导出失败问题。

    Html 中表格导出生成excel文件,解决中文导出失败问题. 网上有Github的jquery插件,但是表格中含有中文的时候,会导出失败,jquery.base64出现INVALID_CHARACT ...

  7. java excel导出 jxl_JAVA利用JXL导出/生成 EXCEL

    jxl是java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文支持非常好,A ...

  8. python etree创建xml_利用 Python ElementTree 生成 xml的实例

    Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree. 首先 import 之: from xml.etree import Eleme ...

  9. java问卷导入excel_Java利用已有的Excel文件导出新的Excel

    在项目开发过程中,经常遇到需要将数据导出到Excel文件中的需求,如果是简单的数据展示,例如:只需一行表头,然后在下面循环输出数据这样的需求,还是比较容易实现的. 但是,在很多情况下,表格的头部并不是 ...

最新文章

  1. gcc里的__builtin_..
  2. 【ARM】ARM汇编程序设计(六) stm和ldm
  3. Android线程池详解
  4. php header会重定向吗,php – 可以依靠header()重定向来结束程序流吗?
  5. twrp3.3.0刷n9002_插画师必备笔刷,送你5套iPad5.0新出300款大神笔刷
  6. python子类继承父类特性,pycharm上面已经提示继承了,为什么会报没有该特性的错误?
  7. 嵌套饼图_你真的了解matplotlib吗?---环形图
  8. C++ 递归函数返回值理解
  9. VMware Workstation 与 Server 的区别
  10. python实现第一个web_使用Python的Flask框架来搭建第一个Web应用程序
  11. 被逼至“盗版合法化”,俄罗斯要把 RuTracker 放出来了?
  12. 7. Nginx 预定义变量
  13. 考研-数学经验贴(总结)
  14. 详解Runtime运行时机制
  15. Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F
  16. Dubbo学习之DubboService
  17. c语言 计算子网掩码位数,子网数、主机数与子网掩码的关系
  18. linux编程 —— shell编程脚本常用语法总结 【学习笔记】
  19. 买房贷款等额本息月供计算方法及其go代码
  20. cs1.6 linux,在Ubuntu 8.04下玩CS1.6

热门文章

  1. php百度推送代码,织梦程序百度php主动推送代码,亲测可用!
  2. 获取并播放youtube data视频
  3. 个性化推荐系统在互联网中的应用
  4. 邮箱vip如何收费,怎么申请电子邮箱163?
  5. LCD1602实现两屏切换
  6. 直播m3u8 参数#EXT-X-DISCONTINUITY
  7. 达人评测 荣耀x20se参数配置
  8. html、css、js实现前端网页圣诞树
  9. 上海metro app android,一款让你感动到Cry的地铁App | 地铁通-MetroMan #iOS #Android
  10. 静态无功补偿与动态无功补偿的区别(转载)