摘要:?jiǎn)卧窀黝?lèi)型數(shù)據(jù)讀取基本類(lèi)型處理的數(shù)據(jù)包括字符型數(shù)據(jù),數(shù)字日期公式等。下面是單元格類(lèi)型說(shuō)明實(shí)例解析中數(shù)據(jù),要求轉(zhuǎn)換為文本方式存儲(chǔ)寫(xiě)一個(gè)解析的抽象類(lèi)版本的版本的解析的文件格式有誤
1.單元格各類(lèi)型數(shù)據(jù)讀取
1.1 基本類(lèi)型
處理的Excel數(shù)據(jù)包括字符型數(shù)據(jù),數(shù)字、日期、公式等。
下面是單元格類(lèi)型說(shuō)明:
2實(shí)例
解析excel中數(shù)據(jù),要求轉(zhuǎn)換為文本方式存儲(chǔ)
2.1 寫(xiě)一個(gè)excel解析的抽象類(lèi)
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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67072.html
摘要:一行代碼完成對(duì)象和之間的轉(zhuǎn)換。說(shuō)明屬性列名稱四版本更新日志版本,新特性導(dǎo)出支持對(duì)象裝換為,并且支持字節(jié)數(shù)組等多種導(dǎo)出方式導(dǎo)入支持轉(zhuǎn)換為對(duì)象,并且支持文件路徑等多種導(dǎo)入方式版本,新特性字段支持類(lèi)型。 《Java對(duì)象和Excel轉(zhuǎn)換工具XXL-EXCEL》 showImg(https://segmentfault.com/img/remote/1460000012470335);showI...
摘要:消費(fèi)之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢并且展現(xiàn)對(duì)應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問(wèn)題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁(yè)面的所有的信息到 EXCEL 文件。 需求分析 對(duì)于 excel 導(dǎo)出,是一個(gè)很常見(jiàn)的需求。 最常見(jiàn)的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...
摘要:?jiǎn)卧窀黝?lèi)型數(shù)據(jù)讀取基本類(lèi)型處理的數(shù)據(jù)包括字符型數(shù)據(jù),數(shù)字日期公式等。下面是單元格類(lèi)型說(shuō)明實(shí)例解析中數(shù)據(jù),要求轉(zhuǎn)換為文本方式存儲(chǔ)寫(xiě)一個(gè)解析的抽象類(lèi)版本的版本的解析的文件格式有誤 1.單元格各類(lèi)型數(shù)據(jù)讀取 1.1 基本類(lèi)型 處理的Excel數(shù)據(jù)包括字符型數(shù)據(jù),數(shù)字、日期、公式等。 下面是單元格類(lèi)型說(shuō)明: showImg(https://segmentfault.com/img/bVMjd...
閱讀 2881·2019-08-30 15:44
閱讀 1913·2019-08-29 13:59
閱讀 2852·2019-08-29 12:29
閱讀 1099·2019-08-26 13:57
閱讀 3211·2019-08-26 13:45
閱讀 3342·2019-08-26 10:28
閱讀 857·2019-08-26 10:18
閱讀 1706·2019-08-23 16:52