1. 程式人生 > >Java POI 匯入Excel以及解析Excel

Java POI 匯入Excel以及解析Excel

用的SSM框架,所需要的jar包如圖所示:,連結地址:jar包下載  ,下面直接上程式碼。

1、ExcelUtil工具類

[java] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. <span style="color:#993399;"><span style="font-size:18px;color:#993399;">import java.text.DecimalFormat;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.Calendar;  
  4. import java.util.Date;  
  5. import java.util.regex.Matcher;  
  6. import java.util.regex.Pattern;  
  7. import org.apache.poi.hssf.usermodel.HSSFCell;  
  8. import org.apache.poi.hssf.usermodel.HSSFDateUtil;  
  9. import org.apache.poi.ss.usermodel.Cell;  
  10. import org.apache.poi.ss.usermodel.DateUtil;  
  11. import
     org.apache.poi.xssf.usermodel.XSSFCell;  
  12. /** 
  13.  * Excel工具類 
  14.  * @author lp 
  15.  * 
  16.  */
  17. publicclass ExcelUtil {  
  18.     publicstaticfinal String OFFICE_EXCEL_2003_POSTFIX = "xls";  
  19.     publicstaticfinal String OFFICE_EXCEL_2010_POSTFIX = "xlsx";  
  20.     publicstaticfinal String EMPTY = "";  
  21.     public
    staticfinal String POINT = ".";  
  22.     publicstatic SimpleDateFormat sdf =   new SimpleDateFormat("yyyy/MM/dd");  
  23.     /** 
  24.      * 獲得path的字尾名 
  25.      * @param path 
  26.      * @return 
  27.      */
  28.     publicstatic String getPostfix(String path){  
  29.         if(path==null || EMPTY.equals(path.trim())){  
  30.             return EMPTY;  
  31.         }  
  32.         if(path.contains(POINT)){  
  33.             return path.substring(path.lastIndexOf(POINT)+1,path.length());  
  34.         }  
  35.         return EMPTY;  
  36.     }  
  37.     /** 
  38.      * 單元格格式 
  39.      * @param hssfCell 
  40.      * @return 
  41.      */
  42.     @SuppressWarnings({ "static-access""deprecation" })  
  43.     publicstatic String getHValue(HSSFCell hssfCell){  
  44.          if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {  
  45.              return String.valueOf(hssfCell.getBooleanCellValue());  
  46.          } elseif (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {  
  47.              String cellValue = "";  
  48.              if(HSSFDateUtil.isCellDateFormatted(hssfCell)){                  
  49.                  Date date = HSSFDateUtil.getJavaDate(hssfCell.getNumericCellValue());  
  50.                  cellValue = sdf.format(date);  
  51.              }else{  
  52.                  DecimalFormat df = new DecimalFormat("#.##");  
  53.                  cellValue = df.format(hssfCell.getNumericCellValue());  
  54.                  String strArr = cellValue.substring(cellValue.lastIndexOf(POINT)+1,cellValue.length());  
  55.                  if(strArr.equals("00")){  
  56.                      cellValue = cellValue.substring(0, cellValue.lastIndexOf(POINT));  
  57.                  }    
  58.              }  
  59.              return cellValue;  
  60.          } else {  
  61.             return String.valueOf(hssfCell.getStringCellValue());  
  62.          }  
  63.     }  
  64.     /** 
  65.      * 單元格格式 
  66.      * @param xssfCell 
  67.      * @return 
  68.      */
  69.     publicstatic String getXValue(XSSFCell xssfCell){  
  70.          if (xssfCell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {  
  71.              return String.valueOf(xssfCell.getBooleanCellValue());  
  72.          } elseif (xssfCell.getCellType() == Cell.CELL_TYPE_NUMERIC) {  
  73.              String cellValue = "";  
  74.              if(XSSFDateUtil.isCellDateFormatted(xssfCell)){  
  75.                  Date date = XSSFDateUtil.getJavaDate(xssfCell.getNumericCellValue());  
  76.                  cellValue = sdf.format(date);  
  77.              }else{  
  78.                  DecimalFormat df = new DecimalFormat("#.##");  
  79.                  cellValue = df.format(xssfCell.getNumericCellValue());  
  80.                  String strArr = cellValue.substring(cellValue.lastIndexOf(POINT)+1,cellValue.length());  
  81.                  if(strArr.equals("00")){  
  82.                      cellValue = cellValue.substring(0, cellValue.lastIndexOf(POINT));  
  83.                  }    
  84.              }  
  85.              return cellValue;  
  86.          } else {  
  87.             return String.valueOf(xssfCell.getStringCellValue());  
  88.          }  
  89.     }     
  90. /** 
  91.  * 自定義xssf日期工具類 
  92.  * @author lp 
  93.  * 
  94. 相關推薦

    Java POI 匯入Excel以及解析Excel

    用的SSM框架,所需要的jar包如圖所示:,連結地址:jar包下載  ,下面直接上程式碼。 1、ExcelUtil工具類 [java] view plain copy  print? <span style="

    poi匯出Excel Java POI匯入匯出Excel

    Java POI匯入匯出Excel   1、異常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException     解決方法:     

    Java-poi匯入excel合併單元格

    要匯入的excel示例 一、Action @Action("/import-excel") public void toimport() { String root = ServletActionContext.getSer

    Java POI大資料量的Excel匯入匯出

      1. 大資料量的匯入 當Excel中的資料量超過10萬行時,在用POI讀取檔案流時很容易引起失敗,需要引入xlsx-streamer來進行資源的開啟,剩下的處理同POI處理上百行資料量類似:filePath=>FileInputStream=>Workboo

    java poi匯入Excel通用工具類

    問題引入和分析 提示:如果不想看羅嗦的文章,可以直接到最後點選原始碼下載執行即可 最近在做一個匯入Excel的功能,在做之前在百度上面查詢“java通用匯入Excel工具類”,沒有查到,大多數都是java通用匯出Excel。後來仔細想想,匯出可

    java poi 匯入excel時 讀取單元格內容的方法 ,其中包含excel中有函式的讀法

    public static String getExcelCellValue(Cell cell) { String ret = ""; try { if (cell == null) { ret = ""; } else if (cell.get

    java poi 匯入匯出多個sheet 的excel資料

    首先要使用java poi要匯入相應的jar。匯入:pulic class excelUtil{/**     * 資料匯入到excel     */     public static void importData(filePath){        HSSFWorkbo

    java POI匯入Excel

    在專案中要匯入天氣資料,Excel中內容如下:(資料隨便寫的) 谷歌瀏覽器中 <input type="file"/> 樣式不好看,因此改了下樣式,在點選文字框和點選瀏覽按鈕時都會彈出選擇檔案提示框。 部分樣式: .file-box{ position:relative;w

    JAVA POI匯入技術之EXCEL模板中製作下拉列表(二)

            在專案系統中,經常會用到POI匯入匯出EXCEL的功能。在進行POI進行匯入EXCEL的時候,經常會涉及到EXCEL模板的問題,匯入EXCEL的模板大部分都會涉及到下拉列表的選項值。今

    關於java poi匯入匯出excel的包衝突問題

    這個問題折騰了我半天,我的匯入和匯出分別用了連個poi包,這兩個包衝突,刪掉其中一個,則另一個功能就不能使用,很糾結,試了很多方法,但是我的import的工具的版本還不能換,版本必須一致,所以我決定,刪除一個版本,我的兩個版本分別位poi-3.8和poi2.2,因為poi-

    java poi分批次導入Excel

    star wim blank create 執行 adr 交流 自己 con 最近換了新工作,公司要求導入Excel要分批次導入,並且是多線程的情況下執行導入,查了很多資料,沒看到比較復合的,就打算自己寫一個吧,可能有不足,希望指出。 上面說到多線程,這邊就不貼出代碼了,

    Java POI元件實現多個Excel檔案整合成一個多Sheet的Excel檔案

    程式碼: package com.weichai; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStre

    使用POI做的一個生成Excel的工具類。包含了導出Excel解析Excel方法

    time 類型 解析excel rom 統計表 pty reat iou 包括 PoiExcelUtils.java /** * */ package com.common.office; import java.io.File; import java.io.

    使用POI做的一個生成Excel的工具類。包含了匯出Excel解析Excel方法

    PoiExcelUtils.java /** * */ package com.common.office; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStrea

    Java上傳下載excel解析Excel、生成Excel的問題

    在軟體開發過程中難免需要批量上傳與下載,生成報表儲存也是常有之事,最近集團門戶開發用到了Excel模版下載,Excel生成,圓滿完成,對這一知識點進行整理,資源共享,有不足之處還望批評指正,文章結尾提供了所需jar包的下載,方便大夥使用,下面言歸正傳!     1.

    使用POI和dom4j來解析Excel生成Xml

    工作中有時候我們需要使用Apache的POI來讀寫Excel檔案,而dom4j則用來解析或者生成Xml檔案,由於涉及到IO流,所以又使用了commons-io提供的IOUtils來關閉流。 需要的Jar包 一個應用POI和dom4j的簡單例子 im

    java poi匯入純數字等格式問題

    用poi匯出excel時候,如果單元格設定純數字,輸入的資料一旦過大就是自動顯示成科學記數法,導致匯入後的資料出錯,解決方式,後臺獲取匯出檔案後,強制轉換單元格屬性,就能完美解決,也適用於其他單元格格式引起的資料匯入異常 --------------------- 本文來自 linge_etoake

    java POI匯入Word文件

    java使用poi讀取doc和docx檔案(maven自動匯入依賴包) <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml&l

    ASP.NET操作Excel---上傳Excel解析Excel檔案

    <tr> <td width="16%" class="c_tdleft"> 上傳Excel檔案: </td>

    java poi匯入圖片問題

    /** * 工作薄物件 */ private SXSSFWorkbook wb; /** * 工作表物件 */ private Sheet sheet; /** * 樣式列表