java excel 解析 什么开源工具好

 我来答
huanglenzhi
2015-07-14 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517194
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
JAVA 通常有两种方法来操作Excel,分别是POI和JExcelAPI,而且都是开源的。POI是Apace公司开发的,对中文的支持比较弱一些;而JExcelAPI是韩国公司开发的,不仅对中文的支持好,而且由于是纯JAVA编写的,所以可以跨平台操作。本文介绍的也是JExcelAPI的使用方法。

1、环境配置

如下网址,可以下载到API:http://www.andykhan.com/jexcelapi/download.html

下载完成的包解压之后,可以得到如下几个重要的文件:

(1)jxl.jar —— JExcelAPI 函数库;

(2)docs —— 帮助文档;

(3)src —— 源码文件夹;

将jxl.jar复制到%JAVA_HOME%\jre\ext\文件夹下面,在CLASSPATH变量里面添加"%JAVA_HOME%\jre\ext",然后就可以调用JExcelAPI了。如果出现编译报错“找不到java.jxl包”,则可能是没有设置成功。这时,如果有Eclipse开发工具,可以在"Build Path"中添加"External Library",找到jxl.jar的路径,然后就能编译成功了。

2、Excel基础操作实例

(1) 创建Excel文件

/**读取Excel文件的内容
* @param file 待读取的文件
* @return // 生成Excel的类 */
package createxls;

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class CreateXLS {
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);

// 写入数据并关闭文件
book.write();
book.close();

} catch (Exception e) {
System.out.println(e);
}
}
}

(2)读Excel文件

package readxls;

//读取Excel的类
import java.io.File;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadXLS {
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);
e.printStackTrace();
}
}
}

(3)合并单元格、格式化单元格等

//合并单元格并在单元格中输入内容

package additionalproperty;

import java.io.*;
import jxl.write.*;
import jxl.*;

public class MergeCells {
public static void main(String [] args){
try{
WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));
WritableSheet sheet = book.createSheet("第一页", 0);
sheet.mergeCells(3, 3, 6, 6); //合并单元格

//设置填充内容的格式
WritableFont font = new WritableFont(WritableFont.TIMES, 30, WritableFont.BOLD);
WritableCellFormat format = new WritableCellFormat(font);
format.setAlignment(jxl.format.Alignment.CENTRE); //水平居中
format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); //垂直居中
format.setBackground(jxl.format.Colour.BLUE); //背景颜色和样式
format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THICK); //边框样式

Label label = new Label(3, 3, "合并", format); //添加内容
sheet.addCell(label);
book.write();
book.close();
}//end try
catch (Exception e){
e.printStackTrace();
}
}
}

(4)添加图片

JExcelAPI对图片的操作有限:它不能生成图表、图片和宏,但是复制工作表时,这些信息可以保留复制。而且当向工作表中添加图片时,只能支持PNG格式的图片。

//在工作表中添加图片

package handleimage;

import java.io.*;
import jxl.*;
import jxl.write.*;

public class CreateImage {
public static void main(String [] args){
try{
WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));
WritableSheet sheet = book.createSheet("第一页", 0);
WritableImage image = new WritableImage(3.5, 3.5, 4.3, 8.7, //定义图片格式
new File("C:\\Documents and Settings\\Wei Li\\My Documents\\My Pictures\\Water lilies.PNG"));
sheet.addImage(image); //添加图片

book.write();
book.close();
}//end try
catch (Exception e){ e.printStackTrace(); }
}
}
dl96200
2015-07-14 · TA获得超过498个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:151万
展开全部
poi,这是我用的最多的了,导入导出都非常方便
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茜拉密
2018-08-03 · TA获得超过1.7万个赞
知道小有建树答主
回答量:129
采纳率:88%
帮助的人:5.3万
展开全部

推荐使用poi,这是用的最多的,导入导出都非常方便。

JAVA 使用POI制作表格,而且都是开源的。POI是Apace公司开发的,对中文的支持比较弱一些;而JExcelAPI是韩国公司开发的,不仅对中文的支持好,而且由于是纯JAVA编写的,所以可以跨平台操作。

HSSFCell cell = row.createCell((short) 0);

//设置此单元格的格式为文本,此句可以省略,Excel会自动识别。

//其他还有几种常用的格式,请参考本文底部的补充部分。

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

//此处是3.0.1版的改进之处,上一版可以直接setCellValue("Hello, World!"),

//但是在3.0.1里,被deprecated了。

cell.setCellValue(new HSSFRichTextString("Hello, World!"));

//创建一个文件输出流,指定到C盘根目录下(C盘都有吧?)

//xls是Excel97-2003的标准扩展名,2007是xlsx,目前的POI能直接生产的还是xls格式,

//如果此处把扩展名改成xlsx,在用Excel2007打开此文件时会报错。

小技巧,快捷操作:可以用鼠标左键选中poi-3.0.1-FINAL-20070705.jar但不松开,拖到任务栏的Eclipse图标上等候1秒左右,Eclipse会自动弹起来,依然不松开移动到lib文件夹上,这个时候鼠标后面跟个十字符号,松开左键,就完成了复制动作。这个是对整个windows系统都好用的快捷复制方式,视源盘符和目标盘符的不同偶尔会用到Ctrl键。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天涯孤伤
2015-07-14 · 超过19用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:24万
展开全部
poi最好,你可以上网找资料试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式