JXL基本操作
一、jxl.jar概述
- 通过java操作excel表格的工具类库
- 支持Excel 95-2000的所有版本
- 生成Excel 2000标准格式
- 支持字体、数字、日期操作
- 能够修饰单元格属性
- 支持图像和图表
应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。
Java Excel API 文档
http://www.andykhan.com/jexcelapi/
二、搭建环境
将下载后的文件解包,得到JXL.JAR,放入classpath。如果包不能正常的加载,可以把你下载好的JXL.JAR包放入本机jre的安装目录下,例如 D:\JAVA\jre\lib\ext中。如果想在Eclipse的一个项目中导入JXL.JAR,在该项目上右键,点击“属性”,类别那里选择”库“,点击"添加外部jar”在弹出的文件选择对话框选择你的jxl.jar。
三、创新文件:
新建一个名"Test.xls"的Excel文件,其中第一个工作表被命名为“sheet_one”,代码如下,编译执行后,会在当前位置产生一个Excel文件。
package com.test; import jxl.*;
import java.io.*; import jxl.write.*;
import jxl.write.biff.RowsExceededException; public class CreateExcel { public static void main(String[] args) throws RowsExceededException, WriteException{
WritableWorkbook book;
try {
System.out.println("---start---");
//打开文件
book = Workbook.createWorkbook(new File("Test.xls")); //生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("sheet_one", 0); //在Label对象的构造中指名单元格位置是第一列第一行(0,0)
//以及单元格内容为Hello World
Label label = new Label(0,0,"Hello World"); //将定义好的单元格添加到工作表中
sheet.addCell(label); /*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
jxl.write.Number num = new jxl.write.Number(0,1,123.456);
sheet.addCell(num); //写入数据并关闭文
book.write();
book.close();
System.out.println("---end---"); } catch (IOException e) {
System.out.println(e);
} } }
四、读取文件:
使用我们上面创建的Excel文件为例,做一个简单的读取操作,程序代码如下:
package com.test; import jxl.*;
import jxl.read.biff.BiffException; import java.io.*; public class ReadExcel { public static void main(String[] args) throws BiffException, IOException {
Workbook book = Workbook.getWorkbook(new File("Test.xls")); //获得第一个工作表对象
Sheet sheet = book.getSheet("sheet_one");
//Sheet sheet = book.getSheet(0); int rows = sheet.getRows();
int cols = sheet.getColumns(); System.out.println("总列数:" + cols);
System.out.println("总行数:" + rows);
System.out.println("----------------------------"); int i=0;
int j=0;
//循环读取数据
for(i=0;i<cols;i++)
{
for(j=0;j<rows;j++)
{
System.out.println("第"+j+"行,第"+i+"列为:"+sheet.getCell(i, j).getContents());
} } } }
输出结果:
总列数:1
总行数:2
----------------------------
第0行,第0列为:Hello World
第1行,第0列为:123.456
五、修改文件:
利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:
package com.test; import jxl.*;
import java.io.*; import jxl.read.biff.BiffException;
import jxl.write.*;
import jxl.write.biff.RowsExceededException; public class UpdateExcel { public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException{
//获得文件
Workbook wb = Workbook.getWorkbook(new File ("Test.xls")); //打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File ("Test.xls"), wb); //添加一个工作表
WritableSheet sheet = book.createSheet("sheet_two", 1); sheet.addCell(new Label(0,0,"Test data for sheet_two")); //输出
System.out.println(sheet.getCell(0, 0).getContents()); book.write();
book.close(); } }
输出:
Test data for sheet_two
JXL基本操作的更多相关文章
- JXL操作Excel
jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文 ...
- JAVA利用JXL导出/生成 EXCEL
/** * 导出导出采暖市场部收入.成本.利润明细表 * @author JIA-G-Y */ public String exporExcel(String str) { String str=Se ...
- Java的JXL操作xls形式
jxl这是一个韩国的写作java操作excel工具, 源世界中,有两套比較有影响的API可供使用.一个是POI,一个是jExcelAPI.当中功能相对POI比較弱一点.但jExcelAPI对中文支持非 ...
- Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现
以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...
- 使用JXL组件操作Excel和导出文件
这段时间参与的项目要求做几张Excel报表,由于项目框架使用了jxl组件,所以把jxl组件的详细用法归纳总结一下.本文主要讲述了以下内容: JXL及相关工具简介 如何安装JXL JXL的基本操作 创建 ...
- JAVA利用JXL导出/生成 EXCEL1
/** * 导出导出采暖市场部收入.成本.利润明细表 * @author JIA-G-Y */ public String exporExcel(String str) { String str=Se ...
- JXL包大解析;Java程序生成excel文件和解析excel文件内容
最近需求变化,需要把excel导入 我以前没有做过,所以我查了一些资料 和参考别人的代码 以下是多种方式: import java.io.File; import java.io.FileInputS ...
- [JAVA]关于excel的jxl包的操作-创建sheet
前言 最近玩的游戏需要记录数据, 手打excel太麻烦了 于是就学了学java的jxl操作.本来记录在有道云笔记就可以的,由于乐于分享的精神 就在博客园造了个号, 之前自己本来有做个人的网站的,奈何网 ...
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
随机推荐
- NGINX前端代理TOMCAT取真实客户端IP
nginx前端代理tomcat取真实客户端IP 使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP.要解决这个问题可以在Nginx配置一 ...
- 应收事物处理删除 SQL 语句
/* Formatted on 2018/3/15 10:07:48 (QP5 v5.256.13226.35538) */ --组织表 SELECT * FROM hr_organization_u ...
- 在Android.mk文件中输出打印消息
http://www.xuebuyuan.com/1947880.html 在进行Android NDK的开发当中有时想看看Android.mk文件当中某个变量的值,可以再Android.mk文件当中 ...
- .NET:Assembly.CodeBase vs. Assembly.Location
The CodeBase is a URL to the place where the file was found, while the Location is the path from whe ...
- Fiddler抓包12-AutoResponder返回本地数据(mock)
前言 mock可以说是面试必问的话题的,我第一次接触mock的时候也是一脸懵逼.虽然fiddler工具用了很久,里面的打断点,设置自动返回数据功能都用过. mock说的通俗一点就是模拟返回数据,只是面 ...
- git 两个中心仓库上的分支 merge
首先在一个中心仓库里面添加另外一个仓库的所有分支. 命令: git remote add Cangku2 https://github.com/abc/abc.git git fetch 这之后在使用 ...
- tomcat站点配置
那么只需要在tomcat 上下文中声明 <Parameter name=“log4j.org.springframework.orm” value=“debug”/> 1.server.x ...
- ListView单条刷新的方法
我们一般会调用notifydatasetchange通知listView刷新界面.但会造成getView方法被多次调用(画面上能显示多少就会被调用多少次),如果是很明确的知道只更新了list中的某一个 ...
- Kubernetes中StatefulSet介绍
StatefulSet 是Kubernetes1.9版本中稳定的特性,本文使用的环境为 Kubernetes 1.11.如何搭建环境可以参考kubeadm安装kubernetes V1.11.1 集群 ...
- C#与Java的语法差异
C#与Java的语法差异C与Java的语法差异前言程序结构基本语法数据类型字符串变量与常量运算符判断语句循环语句访问权限方法数组结构枚举类继承多态运算符重载接口命名空间预处理器指令正则表达式异常IO泛 ...