这段代码可以把一个Excel读到Map中,你可以试试
/**
* 读取多张工作表,多张工作表以shell的形式出现
* @param fileName 文件名,文件不存在会抛出异常
* @return 返回读取结果
*/
public java.util.Map<String, List<String>>[] readWorkBook(InputStream in) throws IOException {
// 构建Workbook对象, 只读Workbook对象
Workbook readwb = null;
try {
readwb = Workbook.getWorkbook(in);
} catch (BiffException e) {
throw new IOException(e);
}
// Sheet的下标是从0开始
Sheet shells[] = readwb.getSheets();
Map<String, List<String>> tables[] = new Map[shells.length];
// 获取第一张Sheet表
for(int index = 0; index < shells.length; index++){
tables[index] = new HashMap<String, List<String>>();
// 获取Sheet表中所包含的总行数
int rsColumns = shells[index].getColumns();
// 获取Sheet表中所包含的总列数
int rsRows = shells[index].getRows();
for (int i = 0; i < rsColumns; i++) {
String head = null;
List<String> rowData = new ArrayList<String>();
for (int j = 0; j < rsRows; j++) {
// 获取指定单元格的对象引用
Cell cell = shells[index].getCell(i, j);
if(j == 0){
head = cell.getContents();
} else {
rowData.add(cell.getContents());
}
}
tables[index].put(head, rowData);
}
}
try{
in.close();
} catch (IOException e) {
throw e;
} finally{
readwb.close();
}
return tables;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。