poi解析Excel0307格式通用 struts2
来源:互联网 发布:淘宝店铺标志图片大小 编辑:程序博客网 时间:2024/06/04 19:37
经常遇到要解析Excel文件,自己整理了一下,写了一个03、07格式都通用的方法,使用了poi开源包,不多说了,上代码,就一个方法,很简单。
import org.apache.poi.hssf.usermodel.HSSFCell;
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.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.WorkbookUtil;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
* 解析导入的Excel文件
* @param file:上传的excel文件,如果是网页上传的是一个.tmp文件,当然也可以自己指定路径excel文件
* @param columnSize:指定列数,就是只提取指定列数目,比如说colunmnSize = 5,则表示只提取5列数据
*/
public List<Map<String,String>> analysisExcel(File file,int columnSize)
throws Exception{
List<Map<String,String>> listData = new ArrayList<Map<String,String>>();
try{
//创建输入流
InputStream stream = new BufferedInputStream(new FileInputStream(file));
//这一句个人觉得很关键,直接创建Workbook对象,后面在判断具体是03还是07格式,当然如果知道是什么格式的,可以直接创建对应格式的(07)XSSFWorkbook //对象或(03)HSSFWorkbook对象
Workbook wb = WorkbookFactory.create(file);
//07格式
if(wb.getClass().equals(XSSFWorkbook.class)){
//这里默认解析第一个表
Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rows = sheet.iterator();
while(rows.hasNext()){
Map<String,String> cellMap = new HashMap<String,String>();
//依次提取获取各行数据
Row row = rows.next();
for(int i = 0;i<columnSize;i++){
String cellValue = "";
if(row.getCell(i) != null && row.getCell(i).getStringCellValue() != null)
cellValue=row.getCell(i).getStringCellValue();
cellMap.put(String.valueOf(i), cellValue);//如果单元格内容为空,则赋值为"";
}
listData.add(cellMap);
}
if(stream != null){
stream.close();
}
}else if(wb.getClass().equals(HSSFWorkbook.class)){//03格式
//这里默认解析第一个表
Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rows = sheet.iterator();
while(rows.hasNext()){
Map<String,String> cellMap = new HashMap<String,String>();
//依次提取获取各行数据
Row row = rows.next();
for(int i = 0;i<columnSize;i++){
String cellValue = "";
if(row.getCell(i) != null && row.getCell(i).getStringCellValue() != null)
cellValue=row.getCell(i).getStringCellValue();
cellMap.put(String.valueOf(i), cellValue);
}
listData.add(cellMap);
}
if(stream != null){
stream.close();
}
}
}catch(Exception e){
throw e;
}
return listData;
}
- poi解析Excel0307格式通用 struts2
- POI解析单元格格式
- POI解析Excel文件通用类
- poi解析excel出现格式不正确
- ocupload、struts2实现excel文件上传,poi解析
- Struts2 POI导出Excel 基本思路解析及相关示例代码
- POI读取并解析xlsx格式的excel文件
- poi 通用类
- POI通用方法
- Poi 解析
- POI解析
- Struts2 poi导出excel
- POI 单元格格式
- poi导出格式设置
- Java poi Excel 通用导出
- POI事件驱动模式读写Excel和格式设置及2007EXCEL解析SAXParser类找不到
- poi创建、解析Excel(还有高版本的xlsx格式的Excel创建)
- 使用Java的POI进行Word文档的解析并生成XML格式文档
- <Java 并发编程实践>读书笔记 --- 内部锁
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
- 一文读懂卷积神经网络
- android 常用adb 和 adb shell 命令
- android学习小项目之一——电话拨号器
- poi解析Excel0307格式通用 struts2
- input文本框输入禁止
- Spring中GetTemplate使用中,事务控制没有在Session的生命周期内起作用,而是中途提交了事务
- 常见排针连接器封装
- assign、retain、copy使用异同
- 局域网访问速度慢、文件传输慢的解决方法
- 训练深度神经网络的时候需要注意的一些小技巧
- C++学习之const指针和多维数组
- C算法-水仙花数