博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java对excel解析 兼容2003与2007
阅读量:5874 次
发布时间:2019-06-19

本文共 2168 字,大约阅读时间需要 7 分钟。

hot3.png

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCell;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ImportExcel {

public Workbook initWorkbook(String filePach) {
Workbook workbook = null;
try {
workbook = new HSSFWorkbook(new FileInputStream(filePach));
} catch (Exception e1) {
try {
workbook = new XSSFWorkbook(new FileInputStream(filePach));
} catch (Exception e) {
e.printStackTrace();
}
}
return workbook;
}
public Map<String, List<String>> transverterToMap(String filePath)
throws Exception {
Map<String, List<String>> result = new HashMap<String, List<String>>();
try {
// 表头行
String[] titles = null;
Sheet aSheet = initWorkbook(filePath).getSheetAt(0);
for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {
Row aRow = aSheet.getRow(rowNumOfSheet);
if (titles == null) {
titles = new String[aRow.getLastCellNum()];
}
for (int cellNumOfRow = aRow.getFirstCellNum(); cellNumOfRow < aRow
.getLastCellNum(); cellNumOfRow++) {
Cell aCell = aRow.getCell(cellNumOfRow);
aCell.setCellType(XSSFCell.CELL_TYPE_STRING);
String cellStr = aCell.getStringCellValue();
if (isTitleRow(aRow)) {
titles[cellNumOfRow] = cellStr;
result.put(cellStr, new ArrayList<String>());
} else {
List<String> list = result.get(titles[cellNumOfRow]);
list.add(cellStr);
}
}
aRow = null;
}
aSheet = null;
} catch (Exception e) {
throw e;
}
return result;
}
private boolean isTitleRow(Row row) {
// 默认情况 excel首行为表头行
return row.getRowNum() == 0 ? true : false;
}
public static void main(String[] args) throws Exception {
Map<String, List<String>> map = new ImportExcel()
.transverterToMap("E:/upload/excel/temp/20120823/2_test.xlsx");
System.out.println(map);
}
}

转载于:https://my.oschina.net/u/577463/blog/83696

你可能感兴趣的文章
蚁视牵手联创互联,可持续拓展“第六媒体”新业态
查看>>
添加事件及Event对象的兼容写法
查看>>
“盒马模式”输出到了新华都
查看>>
SpringCloud学习1-服务注册与发现(Eureka)
查看>>
使用 dynamic 类型让 ASP.NET Core 实现 HATEOAS 结构的 RESTful API
查看>>
Java实现单向链表基本功能
查看>>
6月26日云栖精选夜读丨阿里云在LC3大会上透露未来要做的两件事
查看>>
自己动手实现一个简单的JSON解析器
查看>>
阿里云专有宿主机,构建公共云上的专有资源池
查看>>
WordPress 主题开发商将客户当肉鸡,向对手发起 DDoS 攻击
查看>>
Java包的命名规范
查看>>
关于linux下raid的设备文件和格式化
查看>>
The Rising Smart Logistics Industry: How to Use Big Data to Improve Efficiency and Save Costs
查看>>
机器人行业五大趋势:中国成为机器人投资狂热爱好者
查看>>
CITE 2018走进北美,打造拉斯维加斯“中国之夜”
查看>>
为什么计算机科学家们应该了解量子计算?(三):算法棱镜折射出的科学
查看>>
Theano 中文文档 0.9 - 7. 教程
查看>>
在Panorama最新排名中Infor领先其他ERP巨头
查看>>
区块链
查看>>
Java中使用HttpRequest调用RESTfull的DELETE方法接口提示:How to fix HTTP method DELETE doesn't support output...
查看>>