话不多说,开整!
使用 Workbook 读取Excel
包:jxl-2.6.12.jar
重点不是下面的一堆代码,是里面的方法,
- 获取页签的数量: int sheet_size = wb.getNumberOfSheets();
- 每个页签创建一个Sheet对象: Sheet sheet = wb.getSheet(index);
- 获取总行数: int rows = sheet.getRows();
- 获取总列数:int columns = sheet.getColumns();
- 获取表格中的数据 String cellinfo = sheet.getCell(j, i).getContents();
注意:我这里因为项目需要,是一列一列读取的,需要一行一行读取的小伙伴,请使用上面的方法自行编写即可
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadExcel {
// 去读Excel的方法readExcel,该方法的入口参数为一个File对象
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
public static List<List> readExcel(File file) {
try {
// 创建输入流,读取Excel
InputStream is = new FileInputStream(file.getAbsolutePath());
// jxl提供的Workbook类
Workbook wb = Workbook.getWorkbook(is);
// Excel的页签数量
int sheet_size = wb.getNumberOfSheets();
for (int index = 0; index < sheet_size; index++) {
List<List> outerList = new ArrayList<List>();
// 每个页签创建一个Sheet对象
Sheet sheet = wb.getSheet(index);
// sheet.getRows()返回该页的总行数
for (int i = 0; i < sheet.getRows(); i++) {
List innerList = new ArrayList();
// sheet.getColumns()返回该页的总列数
for (int j = 0; j < sheet.getColumns(); j++) {
String cellinfo = sheet.getCell(j, i).getContents();
// if (cellinfo.isEmpty()) {
// continue;
// }
innerList.add(cellinfo);
}
outerList.add(i, innerList);
}
return outerList;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}