1. 程式人生 > >Java的poi技術讀取和匯入Excel簡單例項

Java的poi技術讀取和匯入Excel簡單例項

專案結構:

java_poi_excel

用到的Excel檔案:

xls

XlsMain .java 類

//該類有main方法,主要負責執行程式,同時該類中也包含了用poi讀取Excel(2003版)

  1. import java.io.FileInputStream;  
  2. import java.io.IOException;  
  3. import java.io.InputStream;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6. import org.apache.poi.hssf.usermodel.HSSFCell;  
  7. import org.apache.poi.hssf.usermodel.HSSFRow;  
  8. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  9. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  10. /**  
  11.  *  
  12.  * @author Hongten</br>  
  13.  *  
  14.  *         參考地址:http://hao0610.iteye.com/blog/1160678  
  15.  *  
  16.  */
  17. publicclass XlsMain {  
  18. publicstaticvoid main(String[] args) throws IOException {  
  19.         XlsMain xlsMain = 
    new XlsMain();  
  20.         XlsDto xls = null;  
  21.         List<XlsDto> list = xlsMain.readXls();  
  22. try {  
  23.             XlsDto2Excel.xlsDto2Excel(list);  
  24.         } catch (Exception e) {  
  25.             e.printStackTrace();  
  26.         }  
  27. for (int i = 0; i < list.size(); i++) {  
  28.             xls = (XlsDto) list.get(i);  
  29.             System.out.println(xls.getXh() + "    " + xls.getXm() + "    "
  30.                     + xls.getYxsmc() + "    " + xls.getKcm() + "    "
  31.                     + xls.getCj());  
  32.         }  
  33.     }  
  34. /**  
  35.      * 讀取xls檔案內容  
  36.      *  
  37.      * @return List<XlsDto>物件  
  38.      * @throws IOException  
  39.      *             輸入/輸出(i/o)異常  
  40.      */
  41. private List<XlsDto> readXls() throws IOException {  
  42.         InputStream is = new FileInputStream("pldrxkxxmb.xls");  
  43.         HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);  
  44.         XlsDto xlsDto = null;  
  45.         List<XlsDto> list = new ArrayList<XlsDto>();  
  46. // 迴圈工作表Sheet
  47. for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {  
  48.             HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);  
  49. if (hssfSheet == null) {  
  50. continue;  
  51.             }  
  52. // 迴圈行Row
  53. for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {  
  54.                 HSSFRow hssfRow = hssfSheet.getRow(rowNum);  
  55. if (hssfRow == null) {  
  56. continue;  
  57.                 }  
  58.                 xlsDto = new XlsDto();  
  59. // 迴圈列Cell
  60. // 0學號 1姓名 2學院 3課程名 4 成績
  61. // for (int cellNum = 0; cellNum <=4; cellNum++) {
  62.                 HSSFCell xh = hssfRow.getCell(0);  
  63. if (xh == null) {  
  64. continue;  
  65.                 }  
  66.                 xlsDto.setXh(getValue(xh));  
  67.                 HSSFCell xm = hssfRow.getCell(1);  
  68. if (xm == null) {  
  69. continue;  
  70.                 }  
  71.                 xlsDto.setXm(getValue(xm));  
  72.                 HSSFCell yxsmc = hssfRow.getCell(2);  
  73. if (yxsmc == null) {  
  74. continue;  
  75.                 }  
  76.                 xlsDto.setYxsmc(getValue(yxsmc));  
  77.                 HSSFCell kcm = hssfRow.getCell(3);  
  78. if (kcm == null) {  
  79. continue;  
  80.                 }  
  81.                 xlsDto.setKcm(getValue(kcm));  
  82.                 HSSFCell cj = hssfRow.getCell(4);  
  83. if (cj == null) {  
  84. continue;  
  85.                 }  
  86.                 xlsDto.setCj(Float.parseFloat(getValue(cj)));  
  87.                 list.add(xlsDto);  
  88.             }  
  89.         }  
  90. return list;  
  91.     }  
  92. /**  
  93.      * 得到Excel表中的值  
  94.      *  
  95.      * @param hssfCell  
  96.      *            Excel中的每一個格子  
  97.      * @return Excel中每一個格子中的值  
  98.      */
  99. @SuppressWarnings("static-access")  
  100. private String getValue(HSSFCell hssfCell) {  
  101. if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {  
  102. // 返回布林型別的值
  103. return String.valueOf(hssfCell.getBooleanCellValue());  
  104.         } elseif (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {  
  105. // 返回數值型別的值
  106. return String.valueOf(hssfCell.getNumericCellValue());  
  107.         } else {  
  108. // 返回字串型別的值
  109. return String.valueOf(hssfCell.getStringCellValue());  
  110.         }  
  111.     }  

XlsDto2Excel.java類

//該類主要負責向Excel(2003版)中插入資料

  1. import java.io.FileOutputStream;  
  2. import java.io.OutputStream;  
  3. import java.util.List;  
  4. import org.apache.poi.hssf.usermodel.HSSFCell;  
  5. import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
  6. import org.apache.poi.hssf.usermodel.HSSFRow;  
  7. import org.apache.poi.hssf.usermodel.HSSFSheet;  
  8. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  9. publicclass XlsDto2Excel {  
  10. /**  
  11.      *  
  12.      * @param xls  
  13.      *            XlsDto實體類的一個物件  
  14.      * @throws Exception  
  15.      *             在匯入Excel的過程中丟擲異常  
  16.      */
  17. publicstaticvoid xlsDto2Excel(List<XlsDto> xls) throws Exception {  
  18. // 獲取總列數
  19. int CountColumnNum = xls.size();  
  20. 相關推薦

    Java的poi技術讀取匯入Excel簡單例項

    專案結構: 用到的Excel檔案: XlsMain .java 類 //該類有main方法,主要負責執行程式,同時該類中也包含了用poi讀取Excel(2003版) import java.io.FileInputStream;  import java.io.

    java後端匯入excel模板匯入excel檔案去讀資料

    模板轉載地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上程式碼(我是基於ssm寫的demo,匯入檔案目前只能讀取.xls字尾的excel檔案) 1 <!--匯入的核心依賴--> 2 <depende

    【JEECG技術博文】JEECG 簡單例項講解許可權控制

                    JEECG簡單例項講解許可權控制作者: 許國傑一、業務背景        某公司要實現一個日誌系統,用來了解員工的工作量飽和情況。二、需求        1、角色分為:員工、經理兩種。        2、員工每天在日誌系統中填報工作總結,然後經理進行點評。        3、表

    佇列的簡單例項

    棧 import java.util.Stack; public class StackClass { public static void main(String[] args)

    python讀取生成excel檔案

    1.用python讀取csv檔案: csv是逗號分隔符格式 一般我們用的execl生成的格式是xls和xlsx  直接重新命名為csv的話會報錯: Error: line contains NULL byte 解決方案:出錯原因是直接是把字尾為xls的execl檔案重新命名為csv的 正常的要

    Python讀取寫入Excel檔案

    製作Excel表 常用方法說明 Workbook類 Workbook類建立一個XlswWrite的Workbook物件,相當於建立一個excel表 And_worksheet()用來建立工作表,預設為sheet1 Add_format():建立一個新的格式物件來格式化單元格,例如bold=

    Python讀取寫入Excel文件

    col mil cal 新的 ima 單元格 nbsp src 默認 制作Excel表 常用方法說明 Workbook類 Workbook類創建一個XlswWrite的Workbook對象,相當於創建一個excel表 And_worksheet()用來創建工作表,默認為

    Java讀取解析Excel資料:基於Apache POI(二)

    Java讀取和解析Excel資料:基於Apache POI(二) 假設附錄1文章中的test.xls是對員工的考勤記錄表。需要根據這張excel表統計員工的加班時間,那麼需要重點關注第五列的下班時候的打卡記錄時間。我寫一個Java程式,根據附錄1中那樣的excel表中的下班打卡時間統計員工在

    C#中NPOI操作excel讀取寫入excel

    一、下載引用 下載需要引用的dll,即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(offic

    Python3 讀取寫入excel xlsx檔案 使用openpyxl

    python處理excel已經有大量包,主流代表有:•xlwings:簡單強大,可替代VBA•openpyxl:簡單易用,功能廣泛•pandas:使用需要結合其他庫,資料處理是pandas立身之本•win32com:不僅僅是excel,可以處理office;不過它相當於是 w

    phoenix-4.7.0:DataFrame讀取匯入到Hbase (apache版本)

    phoenix-4.7.0安裝 1、首先去官網下載Phoenix的壓縮包 下載地址:http://mirror.bit.edu.cn/apache/phoenix/ 由於我們系統的Hbase版本是1.1版本的,故下載4.7版本的Phoeni

    【JEECG技術博文】JEECG簡單例項講解自定義表單功能

    JEECG簡單例項講解自定義表單功能一、自定義表單功能簡介    自定義表單是JEECG智慧開發平臺開發的一套視覺化的表單設計功能,基於ueditor實現,bootstrap樣式風格。    總體來講,

    如何用pandas讀取匯入csv資料檔案

           我們利用python進行資料分析時,pandas中的DataFrame資料結構是最基本最常用的,因此本文將說明如何利用pandas中的方法讀取csv檔案中的資料,以及如何把DataFrame物件的資料匯入到csv檔案中儲存。        關於匯入資料,可以直

    NPOI匯出匯入Excel,WordPDF

    Models資料夾 NPOIModel.cs namespace NPOItest.Models { using System; using System.Data.Entity; using System.ComponentMo

    AOP技術應用研究--AOP簡單應用

               為了更好的理解AOP實踐和體現AOP的優勢,我們始終將OOP和AOP的比較貫穿到下文中。並在最終總結出AOP與OOP相比所擁有的優點,AOP的缺點以及AOP一般的使用場景。 1.1 問題空間到解空間的對映 在比較研究OOP和AOP實踐之前,先讓解決從

    使用JAVA讀取寫入EXCEL檔案

    首先要下載 poi包和jxl包 讀取部分: import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNot

    Python讀取寫入Excel檔案[整]

    學習用Python處理Excel檔案,這裡主要用xlrd和xlwt模組,用前需要安裝!本文是來自幾篇部落格和官網tutorial的整理,主要是一個入門。更多的處理Excel的方法請到官網學習,連結為: 另外,幾篇部落格的參考資料: A:Excel資料的型

    C#委託事件的簡單例項

    # 委託 C#裡這個委託我的理解是可以看成是一個**方法模板的型別**。(不過並沒有找到相關的理解 比如有幾個返回值,引數列表型別相同的方法,就能用同個模板型別來表示,然後例項化一個委託型別就繫結上一個或多個方法,然後就可以一次呼叫這多個方法,相當於把方法物件化?。 ```c# using System; n

    Apache POI讀取創建Excel ----01(簡單操作)

    學習記錄public class ExcelCreatAndRead { /** * 使用Apache POI創建Excel文檔 * */ public static void createXL(){ /**Excel文件要存放的位置,假定在D盤下*/

    簡單搜索--Paddle Mobile的技術實現業務落地

    program mar 不一致 用戶 研發 基礎 RoCE 有關 fff Paddle Mobile是PaddlePaddle組織下的致力於嵌入式平臺的深度學習框架,集成了百度移動端預測的實踐經驗,提供多平臺支持,在工程實現支持及底層算法模型壓縮的基礎上,通過CPU、mal