在工作中,遇到需要将excel表中的特定数据提取出来,并将数据以键值对的形式存储到map集合中。
因为我用的是maven管理的jar包,所以需要导入的依赖:
org.apache.poipoi3.16
org.apache.poipoi-ooxml3.14
net.sourceforge.jexcelapijxl2.6.10
具体实现代码如下:
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;import java.io.*;
import java.util.LinkedHashMap;
import java.util.Map;public class ReadExcel {public Map readExcel(File file) {try {InputStream is = new FileInputStream(file.getAbsolutePath());Workbook wb = Workbook.getWorkbook(is);// Excel的页签数量int sheet_size = wb.getNumberOfSheets();for (int index = 0; index map = new LinkedHashMap();// 每个页签创建一个Sheet对象Sheet sheet = wb.getSheet(index);System.out.println("返回该页的总行数" + sheet.getRows());for (int i = 1; i }
另外,此代码只能操作文件类型是.xls的excel文件,。xlsx类型的不支持,但是可以在excel中将文件另存为.xls类型的excel文件,也可以进行对生成说的新文件进行读取操作。
String cellinfo1 = sheet.getCell(2, i).getContents();
在sheet.getCell(2, 4).getContents()方法,获取指定单元格的内容,excel中的第一行,第一列实际上在程序中都是从0开始的,比如说getCell(2,4)就是excel中的第3列,第5行的单元格。第一个参数表示列数,第二个参数表示行。