(5)POI读取Excel内容
来源:互联网 发布:联邦止咳水 淘宝 编辑:程序博客网 时间:2024/05/17 10:40
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.logging.Level;import java.util.logging.Logger;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFDateUtil;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 writeFileContent.ExcelUtil;public class ExcelReader { /** * 读取excel03内容 * @param file excel03文件 * @return ArrayList<ArrayList<String>> */ public static ArrayList<ArrayList<String>> readXLS(String file){ ArrayList<ArrayList<String>> data=new ArrayList<ArrayList<String>>(); try{ InputStream is=new FileInputStream(file); HSSFWorkbook workbook=new HSSFWorkbook(is);//创建对Excel工作簿文件的引用 //遍历每个sheet表 for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) { if (null != workbook.getSheetAt(numSheet)) { HSSFSheet sheet = workbook.getSheetAt(numSheet); //获得一个sheet //遍历sheet表的每一行的内容 for (int rowNumOfSheet = 0; rowNumOfSheet <= sheet.getLastRowNum(); rowNumOfSheet++) { if (null != sheet.getRow(rowNumOfSheet)) { HSSFRow row = sheet.getRow(rowNumOfSheet); //获得一行 ArrayList<String> rowList=new ArrayList<String>(); //遍历该行每个单元格的内容 for (int cellNumOfRow = 0; cellNumOfRow <= row.getLastCellNum(); cellNumOfRow++) { if (null != row.getCell(cellNumOfRow)) { HSSFCell cell = row.getCell(cellNumOfRow); //获得列值 if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){//数值类型 if(HSSFDateUtil.isCellDateFormatted(cell)){ DateFormat df=new SimpleDateFormat("yyyy/MM/dd"); Date date=cell.getDateCellValue(); rowList.add(df.format(date)); }else{ double value=cell.getNumericCellValue(); rowList.add(String.valueOf(value)); } }else if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){//布尔类型 boolean bool=cell.getBooleanCellValue(); rowList.add(String.valueOf(bool)); }else { rowList.add(cell.getStringCellValue()); } } } data.add(rowList); } } } } } catch (FileNotFoundException ex) { Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); } return data; } /** * 读取excel07内容 * @param file excel07文件 * @return ArrayList<ArrayList<String>> */ public static ArrayList<ArrayList<String>> readXLSX(String file){ ArrayList<ArrayList<String>> data=new ArrayList<ArrayList<String>>(); try{ //构造 XSSFWorkbook 对象,file 传入文件路径 XSSFWorkbook xwb = new XSSFWorkbook(file); //循环工作表Sheet for(int numSheet = 0; numSheet < xwb.getNumberOfSheets(); numSheet++){ XSSFSheet sheet = xwb.getSheetAt(numSheet); if(sheet == null){ continue; } //循环行Row for(int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++){ XSSFRow row = sheet.getRow(rowNum); if(row == null){ continue; } ArrayList<String> rowList=new ArrayList<String>(); //循环列Cell for(int cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++){ XSSFCell cell = row.getCell(cellNum); if(cell == null){ continue; } if(cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN){ boolean bool=cell.getBooleanCellValue(); rowList.add(String.valueOf(bool)); }else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){//数值类型 if(HSSFDateUtil.isCellDateFormatted(cell)){ DateFormat df=new SimpleDateFormat("yyyy/MM/dd"); Date date=cell.getDateCellValue(); rowList.add(df.format(date)); }else{ double value=cell.getNumericCellValue(); rowList.add(String.valueOf(value)); } }else{ rowList.add(cell.getStringCellValue()); } } data.add(rowList); } } } catch (IOException ex) { Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); } return data; } /** * 根据文件后缀名来判断是xls还是xlsx,从而决定用哪个方法获取excel内容 * @param file 文件 * @return 内容 */ public static ArrayList<ArrayList<String>> read(String file){ ArrayList<ArrayList<String>> data=new ArrayList<ArrayList<String>>(); String fileType=file.substring(file.lastIndexOf(".")).toLowerCase(); switch(fileType){ case ".xls": data=readXLS(file); break; case ".xlsx": data=readXLSX(file); break; default: return null; } return data; } public static void main(String args[]){ String file=""; ArrayList<ArrayList<String>> data=read(file); if(data!=null){ for(ArrayList<String> list:data){ System.out.println(list); } } }}
0 0
- (5)POI读取Excel内容
- poi读取excel内容
- poi读取Excel内容
- 使用POI读取Excel内容(一)
- poi读取excel内容(公式)
- java读取excel格式的内容(APACHE POI)
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- 使用POI读取excel文件内容
- (4)Python读写csv文件
- PAT 乙级 1011.A+B和C
- Box2D射线和AABB碰撞检测
- 【蓝桥杯】返回把串s中第一个出现的数字的值
- 个人所得税计算器
- (5)POI读取Excel内容
- 点击textfield不弹出软键盘
- Ubuntu ulimit 系统最大打开文件个数 设置
- redis List链表结构
- 【蓝桥杯】扑克牌移动
- JS和Jquery操作label标签
- javascript中sort()的排序说明
- 本月有几天
- AABB(axis-aligned bounding box)