文章目录
- 背景
- 工具包介绍
- 使用指南
- *1.如何读取excel表格文档内容?*
- *2.如何导出创建excel表格文档?*
- 写在后面
背景
Excel表格的使用在我们的日常生活中十分的普遍。
有时候我们会遇到这样的需求:在开发某管理系统的功能时需要与Excel进行交互,亦或是平时在对excel表格做处理和分析的时候用编程来实现操作能更加高效和便捷。
基于此,本文章的目的在于实现编程与Excel的简单交互,编程使用的语言为JAVA。
Java实现操作excel表格的功能,方法不少,形式多样,如使用Office文档的Java处理包POI来操作excel,如使用一些企业封装好的开源的工具等等。 本文采用的方法是使用由java语言开发而成的工具类库------jxl.jar,来达到与excel的交互效果。简单便捷,即学即用。
~
工具包介绍
jxl.jar:java操作excel表格的工具类库。
这是一个.jar类型的类库,这套API是纯Java的,并不依赖Windows系统,它集成封装了操作处理excel表格的一些类和方法。
以下是此工具包的下载链接:
https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl/2.6.12
*(此网站用来下载java需要的各种.jar包,可收藏使用) *
打开网站界面之后如下图,按图中箭头指引处点击即可下载:
备用下载地址:网盘提取
链接:https://pan.baidu.com/s/1SWMspzDiWLew4LVmgmOn7g 提取码:u4fs
使用指南
下载jxl.jar包之后,我们在project(项目)中添加引入此jar包即可。
如何引入jar包?可跳转博客另一篇博文~~
⭐
使用jxl.jar包操作excel表格,其中主要用到的对象是:
Workbook,Sheet ,Cell。
Workbook:对应一个excel表格;一个Workbook有一个或多个Sheet
Sheet:对应表格中的一页表sheet;一个Sheet有一个或多个Cell
Cell:对应页表中的单元格。
1.如何读取excel表格文档内容?
代码演示:
private static void ReadExcel(String url) throws Exception {
/* url:表格文档路径及名字
eg:"文档路径...\\文档名.xls" */
//1:创建workbook
Workbook workbook=Workbook.getWorkbook(new File(url)); //这里输入表格文档的路径及名字
//2:获取第一个工作表sheet
Sheet sheet=workbook.getSheet(0); //下标从0开始表示第一个工作表
//3:获取数据
for(int i=1;i<sheet.getRows();i++) //行数
{
for(int j=0;j<sheet.getColumns();j++) //列数
{
Cell cell=sheet.getCell(j,i); //这是一个单元格 这里注意j i的顺序不要颠倒
System.out.print(cell.getContents()+" "); //获取单元格内容并输出
}
System.out.println(); //换行
}
//4:关闭资源
workbook.close();
}
代码实现了读取excel表格文档的内容并在控制台输出的效果。
如上只是方便演示,在实际应用中为进一步方便对数据的处理,我们通常会将读取到的数据整理放入特定的数据结构(如数组等)当中。
结果演示:
2.如何导出创建excel表格文档?
首先我们要将数据内容整理成以二维数组的形式存放。
代码演示:
public static void CreateExcel(String url,String head[],String result[][]) throws Exception {
/* url:要导出创建的excel文档的路径位置及名字
eg:"文档路径...\\文档名.xls"
head[]:表格首行标题
result[][]:以二维数组形式存放的表格文档内容
*/
FileOutputStream os=new FileOutputStream(url); //文件流
//创建工作薄
WritableWorkbook workbook = Workbook.createWorkbook(os);
//创建新的一页
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
//创建要显示的具体内容
//首行标题内容
for(int i=0;i<head.length;i++)
{
jxl.write.Label l1=new jxl.write.Label(i, 0, head[i]); // i j注意哈
sheet.addCell(l1);
}
//内容
for(int i=0;i<result.length;i++)
{
for(int j=0;j<result[0].length;j++)
{
// sheet.setColumnView(j, 28);
jxl.write.Label l1=new jxl.write.Label(j, i+1, result[i][j]); // i j注意哈
sheet.addCell(l1);
}
}
workbook.write();
workbook.close();
os.close();
}
代码实现了创建新的excel文档,将数据内容写入其中,完成导出表格的功能。
调用演示:
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String head[]= {"学号","姓名","性别","年龄"};
String result[][]= {
{"123456","小明","男","18"} ,
{"123457","小红","女","19"},
{"123458","小华","男","20"}
};
try {
createExcel("C:\\Users\\64457\\Desktop\\工作簿2.xls", head,result);
} catch (WriteException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
结果演示: 写入excel表格文档
写在后面
以上实现了java与excel的交互,能够使用java语言读取、写入excel表格文档,代码简单,具有通用性。
然而jxl.jar包,由于版本限制,只能读取操作.xls格式的Excel文档,因此在实际处理的过程中,如在读取普通excel文档(.xlsx)的时候,可以手动将内容复制粘贴至新的excel文档,并将此新文档的后缀名格式设为.xls即可。