Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。下面我写了一个简单的例子,展示基本的读取,新建,更新(包括常见格式的设置:字体,颜色,背景,合并单元格),拷贝操作,有这些其实已经基本足够应付大部分问题了。下面是例的源代码:
import java.io.*;
import java.util.Date;
import jxl.*;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.read.biff.BiffException;
import jxl.write.*;
import jxl.format.UnderlineStyle;
import jxl.format.CellFormat;;
public class OperateExcel {
/**
* Read data from a excel file
*/
public static void readExcel(String excelFileName){
Workbook rwb = null;
try{
InputStream stream = new FileInputStream(excelFileName);
rwb = Workbook.getWorkbook(stream);
Sheet sheet = rwb.getSheet(0);
Cell cell = null;
int columns = sheet.getColumns();
int rows = sheet.getRows();
for( int i=0 ; i< rows ; i++ )
for( int j=0 ; j< columns ; j++){
//attention: The first parameter is column,the second parameter is row.
cell = sheet.getCell(j,i);
String str00 = cell.getContents();
if( cell.getType() == CellType.LABEL )
str00 += " LAEBL";
else if( cell.getType() == CellType.NUMBER)
str00 += " number";
else if( cell.getType() == CellType.DATE)
str00 += " date";
System.out.println("00==>"+str00);
}
stream.close();
}
catch(IOException e){
e.printStackTrace();
}
catch(BiffException e){
e.printStackTrace();
}
finally{
rwb.close();
}
}
/**
* create a new excelFile
* @param excelFileName create name
*/
public static void createExcelFile(String excelFileName){
try{
WritableWorkbook wwb = Workbook.createWorkbook(new File(excelFileName));
WritableSheet ws = wwb.createSheet("sheet1",0);
//also,The first parameter is column,the second parameter is row.
// add normal label data
Label label00 = new Label(0,0,"Label00");
ws.addCell(label00);
//add font formating data
WritableFont wf = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD , true);
WritableCellFormat wff = new WritableCellFormat(wf);
Label label10 = new Label(1,0,"Label10",wff);
ws.addCell(label10);
//add color font formating data
WritableFont wf_color = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.DOUBLE_ACCOUNTING,Colour.RED);
WritableCellFormat wff_color = new WritableCellFormat(wf_color);
wff_color.setBackground(Colour.GRAY_25); //set background coloe to gray
Label label20 = new Label(2,0,"Label20",wff_color);
ws.addCell(label20);
//合并单元格
WritableFont wf_merge = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.DOUBLE_ACCOUNTING,Colour.GREEN);
WritableCellFormat wff_merge = new WritableCellFormat(wf_merge);
wff_merge.setBackground(Colour.BLACK);
Label label30 = new Label(3,0,"Label30",wff_merge);
ws.addCell(label30);
Label label40 = new Label(4,0,"Label40");
ws.addCell(label40);
Label label50 = new Label(5,0,"Label50");
ws.addCell(label50);
//合并 (0,3) (4,0)
//attention : 如果合并后面的列不为空,那么就把后面格的内容清空,格式也是按前一个单元格的格式
ws.mergeCells(3,0,4,0);
//添加Number格式数据
jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
ws.addCell(labelN);
//添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);
//添加Boolean对象
jxl.write.Boolean labelBoolean = new jxl.write.Boolean(2,1,false);
ws.addCell(labelBoolean);
//添加DateTime对象
DateTime labelDT = new DateTime(3,1,new Date());
ws.addCell(labelDT);
//添加带有格式的DataTime数据
DateFormat dtf = new DateFormat("yyyy-MM-dd hh:mm:ss");
WritableCellFormat wcfDt = new WritableCellFormat(dtf);
wcfDt.setBackground(Colour.YELLOW);
DateTime labelDT_format = new DateTime(4,1,new java.util.Date(),wcfDt);
ws.addCell(labelDT_format);
ws.mergeCells(4,1,5,1); //比较长,用两列来显示
wwb.write();
wwb.close();
}
catch(IOException e){
e.printStackTrace();
}
catch(WriteException e){
e.printStackTrace();
}
}
/**
* 如何更新Excel文件
* @param fileName
*/
public static void updateExcel(String fileName){
try{
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(fileName));
WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName),rw);
//这里其实执行的是一次copy操作,把文件先读到内存中,修改后再保存覆盖原来的文件来实现update操作
WritableSheet ws = wwb.getSheet(0);
WritableCell wc = ws.getWritableCell(0,0);
if( wc.getType() == CellType.LABEL){
Label l = (Label)wc;
l.setString(wc.getContents()+"_new");
}
wwb.write();
wwb.close();
}
catch(IOException e){
e.printStackTrace();
}
catch(WriteException e){
e.printStackTrace();
}
catch(BiffException e){
e.printStackTrace();
}
}
/**
* 如何copy Excel文件
* @param fileName
*/
public static void copyExcel(String sourFileName,String destFileName){
try{
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(sourFileName));
WritableWorkbook wwb = Workbook.createWorkbook(new File(destFileName),rw);
wwb.write();
wwb.close();
}
catch(IOException e){
e.printStackTrace();
}
catch(WriteException e){
e.printStackTrace();
}
catch(BiffException e){
e.printStackTrace();
}
}
public static void main(String [] argv){
//OperateExcel.readExcel("E:\\test.xls");
//OperateExcel.createExcelFile("E:\\test1.xls");
//OperateExcel.updateExcel("E:\\test.xls");
OperateExcel.copyExcel("E:\\test.xls","E:\\moon.xls");
}
}
分享到:
相关推荐
本篇将详细介绍如何利用`jxl`库来操作Excel文件,并结合实例说明如何从Excel文件中提取数据并生成TXT文件。 首先,我们需要理解`jxl`库的基本结构。`jxl`库主要提供了`Workbook`、`Sheet`、`Cell`等类,分别对应...
JXL 操作 EXCEL 的各个类的解析 JXL 操作 EXCEL 的各个类的解析是 Java 语言中操作 Excel 文件的主要方法之一。JXL 通过提供了多种类来实现对 Excel 文件的读写操作。 首先,JXL 提供了一个抽象类 Workbook,该类...
本篇文章将深入探讨JXL库在操作Excel和数据库导出Excel文件方面的应用。 首先,我们来了解JXL的基本用法。JXL支持读取和写入Biff8格式的Excel文件(即97-2003版本的.XLS文件),这涵盖了大部分常见的Excel文件需求...
JXL操作Excel设置字体颜色设置单元格详解 JXL是一个韩国人写的Java操作Excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文...
在Java编程环境中,处理Excel数据是一项常见的任务,而`jxl`库是一个广泛使用的开源库,专门用于读取和写入Microsoft ...通过分析提供的文件名,我们可以推测出这些代码片段覆盖了使用`jxl`进行Excel操作的主要功能。
jxl操作excel模板jar包,用于导出特定excel模板
本文将详细介绍如何使用`jxl`库进行Excel操作,并提供一个简单的实例。 首先,`jxl.jar`是`jxl`库的主要组件,你需要将其添加到你的项目类路径中。这可以通过将`jxl.jar`放在`lib`目录下或在IDE(如Eclipse、...
总之,`jxl`库提供了强大的功能来操作Excel文件,通过`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`这三个核心类,我们可以实现自定义的Excel导出任务,包括添加水印等高级功能。在实际开发中,结合...
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
以下是对JXL库在进行Excel读写操作时的一些关键知识点的详细解释: 1. **安装与引入** 首先,你需要将JXL库添加到你的项目类路径中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...
### jxl操作Excel文件知识点详解 #### 一、jxl简介 jxl 是一款用于 Java 环境下的 Excel 操作库,由一位韩国开发者所编写。与 Apache POI 相比,jxl 的功能略显简单,但在中文支持方面表现出色。jxl API 不依赖于...
标题“jxl操作excel文件例子”指的是利用JXL库进行Excel文件处理的实际应用。描述中提到的“通过jxl操作excel,简单方便”,暗示了JXL库的一个关键优点——简洁易用的API,使得对Excel文件的操作变得相当直观。 JXL...
JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel报表。 首先,要使用JXL库,你需要在项目中引入它的依赖。在本例中,`jxl.jar`是JXL库的核心...
在"jxlV2"这个文件中,可能包含了使用jxl库进行Excel操作的示例代码。通常,这样的代码会包含打开或创建工作簿、创建工作表、写入数据、设置样式以及保存文件的步骤。 8. **注意事项** 使用jxl时,需要注意内存...
标题"关于jxl操作excel说明以及jxl.jar包下载2.6"表明我们将探讨如何使用JXL库以及在哪里获取它的特定版本(2.6)。 首先,让我们深入了解一下JXL库。JXL是Java Excel API的简称,它提供了一套完整的API,可以创建...
Java中的JExcelAPI是一个用于操作Microsoft Excel...对于需要进行复杂Excel操作的应用,可能需要考虑使用功能更强大的库如Apache POI。总的来说,JExcelAPI是一个简单易用的工具,适合处理简单的Excel数据操作任务。
这个"Java jxl操作Excel97-2003 eclipse可运行项目实例"提供了一个实用的示例,帮助开发者了解如何在Eclipse环境中使用jxl库与Excel97-2003版本的文件进行交互。 1. **jxl库介绍** jxl库是Java编程语言中的一个...
JXL库提供了广泛的API,支持多种Excel操作,包括创建新的工作簿、读取现有工作簿、添加工作表、插入数据、设置格式等。它的核心类包括`Workbook`、`Sheet`和`Cell`,分别代表Excel的工作簿、工作表和单元格。 2. *...
在这个示例中,我们将深入探讨如何使用JXL进行Excel文件的读写操作。 首先,你需要在项目中引入JXL库。`jxl.jar`文件是JXL库的二进制文件,包含了所有必需的类和方法。将这个JAR文件添加到你的项目的类路径中,就...
Excel的生成方式其实很简单,主要包括几个大的类,首先最重要的几个类就是WritableWorkbook,这个类代表的就是一个Excel文档,使用过Excel文档的都应该知道Excel文档的组成,都是由一个一个的sheet组成的,那么这个...