摘要:單元格各類型數(shù)據(jù)讀取基本類型處理的數(shù)據(jù)包括字符型數(shù)據(jù),數(shù)字日期公式等。下面是單元格類型說明實(shí)例解析中數(shù)據(jù),要求轉(zhuǎn)換為文本方式存儲(chǔ)寫一個(gè)解析的抽象類版本的版本的解析的文件格式有誤
1.單元格各類型數(shù)據(jù)讀取
1.1 基本類型
處理的Excel數(shù)據(jù)包括字符型數(shù)據(jù),數(shù)字、日期、公式等。
下面是單元格類型說明:
2實(shí)例
解析excel中數(shù)據(jù),要求轉(zhuǎn)換為文本方式存儲(chǔ)
2.1 寫一個(gè)excel解析的抽象類
public abstract class ExcelParser { private String fileName; private InputStream inputStream; private final static String excel2003L = ".xls";//2003- 版本的excel private final static String excel2007U = ".xlsx";//2007+ 版本的excel protected final static DecimalFormat decimalFormat = new DecimalFormat("0"); protected final static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd"); protected final static String[] columnStr = new String[]{ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; protected OrderExcelParser(String fileName, InputStream inputStream) { this.fileName = fileName; this.inputStream = inputStream; } protected Workbook getWorkbook() throws Exception { try { String fileType = fileName.substring(fileName.lastIndexOf(".")); if (excel2003L.equals(fileType)) { return new HSSFWorkbook(inputStream); //2003- } else if (excel2007U.equals(fileType)) { return new XSSFWorkbook(inputStream); //2007+ } else { throw new Exception(); } } catch (Exception e) { throw new Exception("解析的文件格式有誤!"); } } protected abstract void parseTitles(int rowIndex) throws Exception; protected String getCellStringValue(Cell cell) throws Exception { String cellValue = ""; if (cell == null) { return cellValue; } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) { cellValue = cell.getStringCellValue(); } else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { if (HSSFDateUtil.isCellDateFormatted(cell)) { double d = cell.getNumericCellValue(); Date date = HSSFDateUtil.getJavaDate(d); cellValue = simpleDateFormat.format(date); } else { cellValue = decimalFormat.format((cell.getNumericCellValue())); } } else if (cell.getCellType() == Cell.CELL_TYPE_BLANK) { cellValue = ""; } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) { cellValue = String.valueOf(cell.getBooleanCellValue()); } else if (cell.getCellType() == Cell.CELL_TYPE_ERROR) { cellValue = ""; } else if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) { cellValue = cell.getCellFormula(); } return cellValue.trim(); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67051.html
時(shí)間:2017年07月06日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 預(yù)備知識(shí) 基礎(chǔ)知識(shí) struts2框架(上傳下載功能) xml解析技術(shù)(導(dǎo)入模板) JQuery EasyUI(前臺(tái)美觀) 課程目錄 實(shí)現(xiàn)方式 定制導(dǎo)入模版 導(dǎo)入文件 導(dǎo)...
摘要:中的詳解必修個(gè)多線程問題總結(jié)個(gè)多線程問題總結(jié)有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升開源的運(yùn)行原理從虛擬機(jī)工作流程看運(yùn)行原理。 自己實(shí)現(xiàn)集合框架 (三): 單鏈表的實(shí)現(xiàn) 自己實(shí)現(xiàn)集合框架 (三): 單鏈表的實(shí)現(xiàn) 基于 POI 封裝 ExcelUtil 精簡的 Excel 導(dǎo)入導(dǎo)出 由于 poi 本身只是針對于 ...
摘要:并且在對的抽象中,每一行,每一個(gè)單元格都是一個(gè)對象。對支持使用官方例子需要繼承,覆蓋方法,每讀取到一個(gè)單元格的數(shù)據(jù)則會(huì)回調(diào)次方法。概要Java對Excel的操作一般都是用POI,但是數(shù)據(jù)量大的話可能會(huì)導(dǎo)致頻繁的FGC或OOM,這篇文章跟大家說下如果避免踩POI的坑,以及分別對于xls和xlsx文件怎么優(yōu)化大批量數(shù)據(jù)的導(dǎo)入和導(dǎo)出。一次線上問題這是一次線上的問題,因?yàn)橐粋€(gè)大數(shù)據(jù)量的Excel導(dǎo)出...
摘要:方式解析全稱,它是一個(gè)接口,也是一個(gè)軟件包。另外,推模型可用于廣播環(huán)境,能夠同時(shí)注冊多個(gè),并行接收事件,而不是在一個(gè)管道中一個(gè)接一個(gè)地進(jìn)行處理。這些語法分析器是最靈活的,因?yàn)樗鼈冞€支持。 xcel2007版本的代碼如下,本文主要是用于POI解析大文件Excel容易出現(xiàn)內(nèi)存溢出的現(xiàn)象而提出解決方案,故此解決了大數(shù)據(jù)量的Excel文件解析的難度,在此拿出來貢獻(xiàn)給大家,謝謝! 1.Offic...
摘要:相信使用的目前已經(jīng)非常多了,我這邊提供一個(gè)非常簡單便利又通用的解析工具類,代碼最后有示例代碼??梢园凑毡疚闹苯邮褂?。 相信使用POI的目前已經(jīng)非常多了,我這邊提供一個(gè)非常簡單便利又通用的POI解析工具類,代碼最后有示例代碼??梢园凑毡疚闹苯邮褂谩?import java.io.FileInputStream; import java.io.FileNotFoundException; ...
閱讀 3936·2021-11-22 09:34
閱讀 1505·2021-11-04 16:10
閱讀 1736·2021-10-11 10:59
閱讀 3284·2019-08-30 15:44
閱讀 2048·2019-08-30 13:17
閱讀 3458·2019-08-30 11:05
閱讀 755·2019-08-29 14:02
閱讀 2629·2019-08-26 13:34