使用Apache POI API讀寫Excel
有時候我們需要從Excel檔案中讀取資料,或者我們為了商務或者財政的目的生成Excel格式的報表.Java沒有對操作Excel檔案提供內在的支援,所以我們需要尋找開源的APIs.當我開始尋找操作Excel的APIs時候,大部分人建議使用JExcel或者Apache POI.
在深入研究後,我發現由於以下主要原因Apache POI是正確的選擇.還有些關於高階特性的原因,但是我們不深入太多細節.
1)Apache基金的支援.
2)JExcel不支援xlsx格式而POI既支援xls格式又支援xlsx格式.
3)Apache POI是基於流的處理,因此更適合大檔案和要求更少的記憶體.
Apache POI對處理Excel檔案提供了強大的支援,並且能處理xls和xlsx格式的電子表格.
關於Apache POI一些重要的地方:
1)Apache POI包含適合Excel97-2007(.xls檔案)的HSSF實現.
2)Apache POI XSSF實現用來處理Excel2007檔案(.xlsx).
3)Apache POI HSSF和XSSF提供了讀/寫/修改Excel表格的機制.
4)Apache POI提供了XSSF的一個擴充套件SXSSF用來處理非常大的Excel工作單元.SXSSF API需要更少的記憶體,因此當處理非常大的電子表格同時堆記憶體又有限時,很合適使用.
5)有兩種模式可供選擇--事件模式和使用者模式.事件模式要求更少的記憶體,因為用tokens來讀取Excel並處理.使用者模式更加面向物件並且容易使用,因此在我們的示例中使用使用者 模式.
6)Apache POI為額外的Excel特性提供了強大支援,例如處理公式,建立單元格樣式--顏色,邊框,字型,頭部,腳部,資料驗證,影象,超連結等.
Apache POI的Maven依賴
- <span style="font-size:14px;"><dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi</artifactId>
- <version>3.10-FINAL</version>
- </dependency>
- <dependency>
-
<groupId>org.apache.poi</groupId>
- <artifactId>poi-ooxml</artifactId>
- <version>3.10-FINAL</version>
- </dependency></span>
Apache POI的當前版本是3.10-FINAL.如果你使用單獨的java應用,新增jars根據下面的圖片.
讀取Excel檔案
假設我們有一個叫Sample.xlsx的Excel檔案,裡面有兩個sheet並且下面圖片中的資料.我們想要讀取這個Excel檔案並且建立Countries list.sheet1有些額外的資料,當我們解析時會忽略它.
我們的國家(Country)java bean如下:
Country.java
- package com.journaldev.excel.read;
- publicclass Country {
- private String name;
- private String shortCode;
- public Country(String n, String c){
- this.name=n;
- this.shortCode=c;
- }
- public String getName() {
- return name;
- }
- publicvoid setName(String name) {
- this.name = name;
- }
- public String getShortCode() {
- return shortCode;
- }
- publicvoid setShortCode(String shortCode) {
- this.shortCode = shortCode;
- }
- @Override
- public String toString(){
- return name + "::" + shortCode;
- }
- }
讀取Excel檔案並建立Countries list程式碼如下:
ReadExcelFileToList.java
- package com.journaldev.excel.read;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.ss.usermodel.Sheet;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- publicclass ReadExcelFileToList {
- publicstatic List<Country> readExcelData(String fileName) {
- List<Country> countriesList = new ArrayList<Country>();
- try {
- //Create the input stream from the xlsx/xls file
- FileInputStream fis = new FileInputStream(fileName);
- //Create Workbook instance for xlsx/xls file input stream
- Workbook workbook = null;
- if(fileName.toLowerCase().endsWith("xlsx")){
- workbook = new XSSFWorkbook(fis);
- }elseif(fileName.toLowerCase().endsWith("xls")){
- workbook = new HSSFWorkbook(fis);
- }
- //Get the number of sheets in the xlsx file
- int numberOfSheets = workbook.getNumberOfSheets();
- //loop through each of the sheets
- for(int i=0; i < numberOfSheets; i++){
- //Get the nth sheet from the workbook
- Sheet sheet = workbook.getSheetAt(i);
- //every sheet has rows, iterate over them
- Iterator<Row> rowIterator = sheet.iterator();
- while (rowIterator.hasNext())
- {
- String name = "";
- String shortCode = "";
- //Get the row object
- Row row = rowIterator.next();
- //Every row has columns, get the column iterator and iterate over them
- Iterator<Cell> cellIterator = row.cellIterator();
- while (cellIterator.hasNext())
- {
- //Get the Cell object
- Cell cell = cellIterator.next();
- //check the cell type and process accordingly
- switch(cell.getCellType()){
- case Cell.CELL_TYPE_STRING:
- if(shortCode.equalsIgnoreCase("")){
- shortCode = cell.getStringCellValue().trim();
- }elseif(name.equalsIgnoreCase("")){
- //2nd column
- name = cell.getStringCellValue().trim();
-
}
相關推薦
使用Apache POI API讀寫Excel
有時候我們需要從Excel檔案中讀取資料,或者我們為了商務或者財政的目的生成Excel格式的報表.Java沒有對操作Excel檔案提供內在的支援,所以我們需要尋找開源的APIs.當我開始尋找操作Excel的APIs時候,大部分人建議使用JExcel或者Apache POI. 在深入研究後,我
Apache的POI工具類讀寫Excel操作
package com.shtel.cpc.data.poi.example; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import
Apache POI讀寫Excel文件入門(支援XLS和XLSX格式)
值得一提的是,POI的全稱是Poor Obfuscation Implementation,意為“簡陋又模糊的實現”,這和slf4j(Simple Log Facade for Java,Java簡單日誌門面)的取名有異曲同工之妙。這兩個東西實際上是非常強大的,但是它們的作者卻說自己的東西很poor、很sim
Java 利用Apache POI 讀寫Excel檔案超出行列限制
1.首先說明,不管那個版本的Excel都有行、列數限制 可以開啟EXCEL 2003(xls)或EXCEL 2010以上(xlsx),通過CTRL + ↓與CTRL + → 即可看到: 1
Java讀寫Excel之POI超入門(轉)
num mov war copy rbo workbook mon move dropdown Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功
poi 讀寫Excel小工具 部分原始碼
功能 如果匹配條件相同 則把路徑2 的值賦值到路徑一 部分原始碼 //獲取表名 public static String[] getSheetNames(String filePath) { &nb
Java 操作Excel poi讀寫excel
Java 操作Excel poi讀寫excel,excel匯入匯出(精簡版) 1.所需jar包 下載地址:https://download.csdn.net/download/u014646662/10734734 2.原始碼 寫操作(excel匯出) package cn
利用POI讀寫Excel
Apache下的POI用來操作Excel非常方便,如果操作.xsl(03版本)則用HSSFWorkbook,若操作.xslx(07版本)則用XSSFWorkbook 程式碼清單如下: ExcelOperation: package com.excel.rw;
用poi讀寫Excel並匯入資料
首先寫個工具類 用來讀寫Excel的 ... import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util
Java POI 讀寫Excel 檔案簡單實現
整理FileUtils的一些方法,只是一些初步實現,剛寫完就掛上來了… 友情提示:**過於結構化,沒太多潤色....碼的不好還請諸位海涵並多提意見** 關聯的型別 資源 型別 說明 Workbook 介面 Ex
java讀寫excel(POI,支援xls和xlsx兩種格式)
這應該是一個比較全的示例了,更加複雜的功能可以在此基礎上擴充套件。此示例基於apache的POI類庫,相關jar包就不列舉了。這個類庫很通用,網上很好找。 1、不包含單元格合併的寫excel /** * excel匯出到輸出流 * 誰呼叫誰負責關閉輸出流 *
Java讀寫Excel之POI超入門
Apache POI 是建立和維護操作各種符合Office Open XML(OOXML)標準和微軟的OLE 2複合文件格式(OLE2)的Java API。用它可以使用Java讀取和建立,修改MS Excel檔案.而且,還可以使用Java讀取和建立MS Word和MSPowerPoint檔案。Apac
POI事件驅動模式讀寫Excel和格式設定及2007EXCEL解析SAXParser類找不到
POI事件驅動模式讀寫Excel 目前處理Excel的開源javaAPI主要有兩種,一是Jxl(Java Excel API),Jxl只支援Excel2003以下的版本。另外一種是Apache的Jakarta POI,相比於Jxl,POI對微軟辦公文件的支援更加強大,但
maven配置 poi 3.5包 讀寫excel 2007 xlsx
參考了 上面有說明引入那些包的,但沒有說明maven怎麼配置,一般會以為maven配置時引入poi就行,試了一下,發現引入後不會自動加入另外需要的包,難道非要額外自己引入其他需要的包不可嗎? 不是的,試了一下,其實不引入poi而是引入poi-ooxml就會自動引入操作xl
使用POI讀寫EXCEL檔案 [poi3.9]
讀SHEET內容: 寫入紅框中內容: 執行結果: 匯入jar包: 類和程式碼: package com.itcast.poi.helloworld; import java.io.File; import java.io.FileInputStream;
POI讀寫excel例項 (1)
excel讀入進行單元格賦值 package testPOI; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; i
使用phpexcel類讀寫excel文件
如何 blank 第三方類庫 第三方類 文件 pex ffi bsp 地址 使用原生php讀寫excel文件的博文地址: 基於使用原生php讀寫excel文件的不靠譜,本文將簡單介紹如何使用第三方類庫phpexcel來讀寫excel文件。 首先,需要到githut下載php
python讀寫excel
字符串 一行 工作 default print file 設置 logs open python讀寫excel: # coding=utf-8 import xlrd import xlwt import traceback from xlutils.copy imp
Python讀寫excel表格的方法
python excel 表格 xls 目的:實現用python做excel的讀取、新增、修改操作。環境:ubuntu 16.04 Python 3.5.2用python讀寫文檔,一般是操作txt文件或者可以用記事本打開的文件,因為這個操作很直接,不需要導入其他模塊,但如果想要對excel表
Python讀寫excel表格的方法二
python excel 讀寫表格 目的:實現用python的另一種方法做excel的讀取、新增操作。環境:ubuntu 16.04 Python 3.5.2情景:之前介紹了一種操作excel文件的方法(私鏈),現在使用另一種方法讀寫excel文件,一次性讀出或寫入,讀寫也很方便,讀出為有序字典