前言
本文主要讲述如何在Java中读取Excel表中的数据并在控制台输出,实现工具为Eclipse
提示:以下是本篇文章正文内容,下面案例可供参考
一、添加jar包文件
描述:在Java中导入导出Excel文件要引入jxl.jar包。这套API是纯Java的,并不依赖Windows系统,即使运行在Linux操作系统下也同样能够正确的处理Excel文件。
jar包获取地址: 链接:https://pan.baidu.com/s/1bzyVzo_8Xc_7IFIFavYmyg
提取码:xhzy
1.在Eclipse工程下新建lib文件夹
2.复制jar包
3.将jar包粘贴到Eclipse中
此时Eclipse中jar包文件是这个样子,说明并没有导入jar包,接下来进行配置构建路径
4.配置构建路径
鼠标移动到工程名处,右击Build Path > Configure Build Path…
在类路径下添加外部jar包
选中Java项目工程中的lib文件夹下的jxl.jar包,点击确定后应用并关闭
当jar包变成这个样子以后就说明该Java项目工程中成功添加了该jar包
二、案例代码
在桌面上创建了后缀名为.xls的表格文件作为本案例的测试表格,表格内容如下所示:
1.新建类
在Java项目工程中我创建了一个只包含有main方法的类
代码如下(示例):
packagecom.dreamfly; publicclassExcelImport { publicstaticvoidmain(String[] args) { } }
2.获取Excel文件
代码如下(示例):
Filefile=newFile("C:\\Users\\飞翔的兰\\Desktop\\student.xls"); Workbookwb=Workbook.getWorkbook(file);
通过File类的构造方法将给定路径名字符串转换为抽象路径名来创建一个新的File实例
再通过Workbook接口中的getWorkbook方法读取Excel表格(后缀名只能为.xls)
查看Excel文件位置的方法:
找到桌面上的Excel文件右击,选择属性
3.获取指定的sheet页码
在导入Excel表格后接着就是获取要读取表格哪一页的的数据
Sheet sheet = wb.getSheet("Sheet1");
这里是通过指定的Sheet页的名字获取指定的Sheet页,也可以通过索引获取Sheet页
4.获取单元格数据
通过两个for循环获取单元格的数据,外循环控制行,内循环控制列
for (inti=0; i<sheet.getRows(); i++) { for (intj=0; j<sheet.getColumns(); j++) { Cellcell=sheet.getCell(j,i); System.out.print(cell.getContents()+"\t"); //\t代表tab键的字符 } System.out.println(); //设置每查询完一行就换行 }
代码中的getCell方法获取的是指定单元格对象,参数是column(列),row(行),行和列的索引均从0开始
for循环当中的控制条件可以利用getRows方法和getColumns方法来获取Excel表格中存在数据的行数和列数
5.关闭工作簿资源
wb.close();
三、运行结果:
四、案例源码:
packagecom.dreamfly; importjava.io.File; importjxl.Cell; importjxl.Sheet; importjxl.Workbook; publicclassExcelImport { publicstaticvoidmain(String[] args) throwsException { //Excel办公,以表格形式存在//如何实现:1.fastExcel 2.jxl解析(第三方) 3.poi方式(第三方)//通过jxl方式解析Excel步骤如下://1. 导入jxl的jar包//2. 获取到Excel文件Filefile=newFile("C:\\Users\\飞翔的兰\\Desktop\\student.xls"); Workbookwb=Workbook.getWorkbook(file); //3. 获取指定的sheet页码 通过指定的Sheet页的名字获取指定的Sheet页,也可以通过索引获取SheetSheetsheet=wb.getSheet("Sheet1"); //4. 获取指定的单元格的数据 通过getCell方法获取指定单元格对象,参数是column,row,索引从0开始// Cell cell = sheet.getCell(0,0);// System.out.println(cell.getContents());//4.1 循环获取指定的行和列的单元格的值 外循环控制行,内循环控制列for (inti=0; i<sheet.getRows(); i++) { for (intj=0; j<sheet.getColumns(); j++) { Cellcell=sheet.getCell(j,i); System.out.print(cell.getContents()+"\t"); //\t代表tab键的字符 } System.out.println(); //设置每查询完一行就换行 } wb.close(); //将工作簿的资源关闭 } }