java解析ecel文件,xls和xlsx

package com.in.code;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;


import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


import org.apache.log4j.Logger;


public class ParisExcelFile {

private static Logger logger = Logger.getLogger(ParisExcelFile.class);

public static void main(String[] args) throws IOException{
ParisExcelFile ps = new ParisExcelFile();
Map<Integer, Object> resultMap = new HashMap<Integer, Object>();
// String fileName = "小批量画册定价表160301.xlsx";
String fileName = "test.xlsx";
String xlsxPath = "F:" + File.separator + "excel_Api" + File.separator + fileName;
if(fileName.contains("xlsx")){
resultMap = ps.praisXlsx(xlsxPath);
} else {
resultMap = ps.praisXls(xlsxPath);
}
}

public  Map<Integer,Object> praisXlsx(String url) throws IOException{
Map<Integer, Object> map = new HashMap<Integer, Object>();
XSSFWorkbook xssfWorkbook = null;
StringBuffer content = new StringBuffer();
try {
InputStream is = new FileInputStream(url);
xssfWorkbook = new XSSFWorkbook(is);
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
if(xssfSheet != null){
int rows = xssfSheet.getLastRowNum();
for(int i=0;i<rows;i++){
XSSFRow xssfRow = xssfSheet.getRow(i);
if(xssfRow != null){
List<XSSFCell> list = new LinkedList<XSSFCell>();
int cols = xssfRow.getLastCellNum();
for(int y=0;y<cols;y++){
XSSFCell cell = xssfRow.getCell(y);
list.add(cell);
}
map.put(i, list);
content.append(list.toString() + "\n");
}
}
}
logger.info(content);
} catch (Exception e) {
e.printStackTrace();
logger.info("读取文件失败");
} finally {
xssfWorkbook.close();
}
return map;
}

public Map<Integer,Object> praisXls(String url) throws IOException{
Map<Integer, Object> map = new HashMap<Integer, Object>();
HSSFWorkbook hssfWorkbook = null;
try {
InputStream is = new FileInputStream(url);
hssfWorkbook = new HSSFWorkbook(is);
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0); 
if(hssfSheet != null){
int rows = hssfSheet.getLastRowNum();
for(int nums = 0;nums<rows;nums++){
List<HSSFCell> list = new LinkedList<HSSFCell>();
HSSFRow hssfRow = hssfSheet.getRow(nums);
int cols = hssfRow.getLastCellNum();
for(int y=0;y<cols;y++){
HSSFCell cell = hssfRow.getCell(y);
list.add(cell);
}
map.put(nums, list);
logger.info(map + "\n");
}
}
} catch (Exception e) {
logger.info("读取文件失败");
e.printStackTrace();
} finally {
hssfWorkbook.close();
}
return map;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值