成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

POI技術(shù)—用于java開發(fā)解析excel的抽象類

xfee / 2586人閱讀

摘要:單元格各類型數(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

相關(guān)文章

  • 慕課網(wǎng)_《解密JAVA實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出》學(xué)習(xí)總結(jié)

    時(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)...

    enrecul101 評論0 收藏0
  • Java 總結(jié)

    摘要:中的詳解必修個(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 本身只是針對于 ...

    caspar 評論0 收藏0
  • Excel大批量數(shù)據(jù)導(dǎo)入和導(dǎo)出,如何做優(yōu)化?

    摘要:并且在對的抽象中,每一行,每一個(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)出...

    Tecode 評論0 收藏0
  • POI Sax 事件驅(qū)動(dòng)解析Excel2007文件(較大數(shù)據(jù)量讀存導(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...

    cod7ce 評論0 收藏0
  • 簡單好用-JAVA使用POI解析Excel

    摘要:相信使用的目前已經(jīng)非常多了,我這邊提供一個(gè)非常簡單便利又通用的解析工具類,代碼最后有示例代碼??梢园凑毡疚闹苯邮褂?。 相信使用POI的目前已經(jīng)非常多了,我這邊提供一個(gè)非常簡單便利又通用的POI解析工具類,代碼最后有示例代碼??梢园凑毡疚闹苯邮褂谩?import java.io.FileInputStream; import java.io.FileNotFoundException; ...

    wangjuntytl 評論0 收藏0

發(fā)表評論

0條評論

xfee

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<