色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Java讀取Excel的方法,解析xls、xlsx兩種格式

瀏覽:118日期:2022-05-31 14:41:29

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.HashMap;import java.util.Map;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.DateUtil;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.XSSFWorkbook;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 讀取Excel * * @author zengwendong */public class ReadExcelUtils {private Logger logger = LoggerFactory.getLogger(ReadExcelUtils.class);private Workbook wb;private Sheet sheet;private Row row;public ReadExcelUtils(String filepath) {if(filepath==null){return;}String ext = filepath.substring(filepath.lastIndexOf('.'));try {InputStream is = new FileInputStream(filepath);if('.xls'.equals(ext)){wb = new HSSFWorkbook(is);}else if('.xlsx'.equals(ext)){wb = new XSSFWorkbook(is);}else{wb=null;}} catch (FileNotFoundException e) {logger.error('FileNotFoundException', e);} catch (IOException e) {logger.error('IOException', e);}}/** * 讀取Excel表格表頭的內(nèi)容 * * @param InputStream * @return String 表頭內(nèi)容的數(shù)組 * @author zengwendong */public String[] readExcelTitle() throws Exception{if(wb==null){throw new Exception('Workbook對(duì)象為空!');}sheet = wb.getSheetAt(0);row = sheet.getRow(0);// 標(biāo)題總列數(shù)int colNum = row.getPhysicalNumberOfCells();System.out.println('colNum:' + colNum);String[] title = new String[colNum];for (int i = 0; i < colNum; i++) {// title[i] = getStringCellValue(row.getCell((short) i));title[i] = row.getCell(i).getCellFormula();}return title;}/** * 讀取Excel數(shù)據(jù)內(nèi)容 * * @param InputStream * @return Map 包含單元格數(shù)據(jù)內(nèi)容的Map對(duì)象 * @author zengwendong */public Map<Integer, Map<Integer,Object>> readExcelContent() throws Exception{if(wb==null){throw new Exception('Workbook對(duì)象為空!');}Map<Integer, Map<Integer,Object>> content = new HashMap<Integer, Map<Integer,Object>>();sheet = wb.getSheetAt(0);// 得到總行數(shù)int rowNum = sheet.getLastRowNum();row = sheet.getRow(0);int colNum = row.getPhysicalNumberOfCells();// 正文內(nèi)容應(yīng)該從第二行開始,第一行為表頭的標(biāo)題for (int i = 1; i <= rowNum; i++) {row = sheet.getRow(i);int j = 0;Map<Integer,Object> cellValue = new HashMap<Integer, Object>();while (j < colNum) {Object obj = getCellFormatValue(row.getCell(j));cellValue.put(j, obj);j++;}content.put(i, cellValue);}return content;}/** * * 根據(jù)Cell類型設(shè)置數(shù)據(jù) * * @param cell * @return * @author zengwendong */private Object getCellFormatValue(Cell cell) {Object cellvalue = '';if (cell != null) {// 判斷當(dāng)前Cell的Typeswitch (cell.getCellType()) {case Cell.CELL_TYPE_NUMERIC:// 如果當(dāng)前Cell的Type為NUMERICcase Cell.CELL_TYPE_FORMULA: {// 判斷當(dāng)前的cell是否為Dateif (DateUtil.isCellDateFormatted(cell)) {// 如果是Date類型則,轉(zhuǎn)化為Data格式// data格式是帶時(shí)分秒的:2013-7-10 0:00:00// cellvalue = cell.getDateCellValue().toLocaleString();// data格式是不帶帶時(shí)分秒的:2013-7-10Date date = cell.getDateCellValue();cellvalue = date;} else {// 如果是純數(shù)字// 取得當(dāng)前Cell的數(shù)值cellvalue = String.valueOf(cell.getNumericCellValue());}break;}case Cell.CELL_TYPE_STRING:// 如果當(dāng)前Cell的Type為STRING// 取得當(dāng)前的Cell字符串cellvalue = cell.getRichStringCellValue().getString();break;default:// 默認(rèn)的Cell值cellvalue = '';}} else {cellvalue = '';}return cellvalue;}public static void main(String[] args) {try {String filepath = 'F:test.xls';ReadExcelUtils excelReader = new ReadExcelUtils(filepath);// 對(duì)讀取Excel表格標(biāo)題測(cè)試//String[] title = excelReader.readExcelTitle();//System.out.println('獲得Excel表格的標(biāo)題:');//for (String s : title) {//System.out.print(s + ' ');//}// 對(duì)讀取Excel表格內(nèi)容測(cè)試Map<Integer, Map<Integer,Object>> map = excelReader.readExcelContent();System.out.println('獲得Excel表格的內(nèi)容:');for (int i = 1; i <= map.size(); i++) {System.out.println(map.get(i));}} catch (FileNotFoundException e) {System.out.println('未找到指定路徑的文件!');e.printStackTrace();}catch (Exception e) {e.printStackTrace();}}}

標(biāo)簽: excel
主站蜘蛛池模板: 精品视频久久久久 | 国产最新精品 | 久久黄网 | 欧美成人精品欧美一级乱黄 | 国产激情视频网站 | 草草视频在线观看 | 一个人看的免费高清视频日本 | 国产乱理片在线观看夜 | 精品一区二区久久久久久久网站 | 自拍视频啪 | 亚洲免费一级视频 | 在线免费观看一级毛片 | 午夜在线观看视频免费 成人 | 久久亚洲成a人片 | 深夜做爰性大片中文 | 日本xxxxxxx69xx | 伊人婷婷色香五月综合缴激情 | 国产欧美精品一区二区三区 | 久久小视频 | 欧美日韩不卡在线 | 欧美在线成人午夜影视 | 99久久精品自在自看国产 | 午夜欧美在线 | 日韩一级影片 | 欧美老熟妇bbbb毛片 | 亚洲最黄网站 | 欧美三级一级 | 日韩黄色一级片 | 女人张开腿等男人桶免费视频 | 日本人的色道免费网站 | 免费精品99久久国产综合精品 | 黄色在线不卡 | 日本午色www高清视频 | 成人毛片视频免费网站观看 | 最新国产午夜精品视频成人 | 久久91在线| a级精品九九九大片免费看 a级毛片免费观看网站 | 一级成人毛片免费观看欧美 | 精品手机在线视频 | 男女午夜爽爽 | 亚洲欧美日韩国产综合 |