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网站上列出的语言就有: ...
随机推荐
- ios之快速枚举
for(UIView * subView in self.view.subviews) { if([subView isKindOfClass:[XYZSeniorQueryView class]]) ...
- iOS sqlite 使用事务操作数据库
业务层代码: //将解析的更新人员数据批量同步到数据库 +(void)operateCompUsers:(NSMutableArray*)operateCompUsers { sqliteHelper ...
- 学习 HTML+CSS 的书籍推荐
1.<CSS那些事儿> 本书专注于CSS技巧实例的讲解,由浅入深地分析了CSS样式在布局时所需要理解的原理.绕开随处可见的基础知识.网络中能随意搜索到的hack技巧,侧重原理分析,拓展读者 ...
- iReport使用方法
新建报表,依次单击“文件/New…”,弹出窗口 选择”Blank A4”,单击”Open this Template” 依次单击“下一步/完成”,得到一个新的report 单击”OK”按钮完成数据集设 ...
- Ant build.xml
Ant的概念可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令其实就 ...
- 【python】安装Python 的IDE--PyCharm
[百度网盘-技术-pycharm破解需要的有安装包和破解jar] ================================================== 安装Tensorflow开发环境 ...
- 关于面试总结3-SQL查询
前言 select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此语法,mysql用limit来实现相关功能. LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数 ...
- HttpMessageNotWritableException: Could not write JSON: No serializer found for class ****
今天碰到一个异常,下面是错误信息 org.springframework.http.converter.HttpMessageNotWritableException: Could not write ...
- 都市侠盗第一季/全集Leverage迅雷下载
第一季 Leverage Season 1 (2008)看点:Nate Ford(蒂莫西·赫顿 Timothy Hutton 饰)曾当过保险调查员,为自己的老板挽回过数百万美元的损失,是个忠心耿耿的雇 ...
- Java常用工具类之ArrayUtil
过滤 ArrayUtil.filter方法用于编辑已有数组元素,只针对泛型数组操作,原始类型数组并未提供. 方法中Editor接口用于返回每个元素编辑后的值,返回null此元素将被抛弃. 例如:过滤数 ...