透過Java解析Excel檔案

也是一個工作中遇到的情境,很多單位想讓內部人員利用Excel維護資料(因為維護上比較簡單方便),且想讓這份資料透過網頁呈現給一般網友閱讀,所以整體後端的流程應該是:

  1. 將維護的Excel透過網頁介面上傳
  2. 將上傳的Excel轉換成XML
  3. 網頁去讀取這份XML來呈現

透過以上的三個步驟,就可以完成客戶想要效果。

本範例展示的是讀取Excel的XLS格式(新版Excel為XLSX格式),並轉換成陣列的方法(寫入XML在前面的範例就有了),我們選用讀取Excel的Library是Apache POI,而檔內已經有以下的資料,其中Total是公式欄位,計算Price x Quantity:

IDNamePriceQuantityTotal
100001產品名稱110550
100002產品名稱22010200
100003產品名稱33015450

以下是讀取的程式範例:

package CDIT.stanley;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;


public class excelToXMLFullSample {
	
	static ArrayList<ArrayList<String>> excelData = new ArrayList<ArrayList<String>>();
	
	public static void main (String[] args) throws FileNotFoundException{
		
		excelData.clear();
	    
	    String xlsPath = "C:\\Projects\\Javas\\sample.xls";
	    InputStream inputStream = null;
	    inputStream = new FileInputStream (xlsPath);
		POIFSFileSystem fileSystem = null;
	    try {
	        fileSystem = new POIFSFileSystem (inputStream);
			@SuppressWarnings("resource")
			HSSFWorkbook workBook = new HSSFWorkbook (fileSystem);
	        HSSFSheet sheet = workBook.getSheetAt (0);
	        Iterator<?> rows = sheet.rowIterator ();
	        
	        while (rows.hasNext ()){
	            HSSFRow row = (HSSFRow) rows.next();
	            Iterator<?> cells = row.cellIterator ();

	            ArrayList<String> rowData = new ArrayList<String>();
	            
	            while (cells.hasNext ()){
	                HSSFCell cell = (HSSFCell) cells.next();
	                
	                switch (cell.getCellTypeEnum()){
		                case STRING :{
		                    rowData.add(cell.getStringCellValue());
		                    break;
		                }
		                case NUMERIC : {
		                    rowData.add((int)cell.getNumericCellValue() + "");
			                break;
		                }
		                case FORMULA :{
		                	switch(cell.getCachedFormulaResultTypeEnum()) {
			                    case STRING:
			                    	rowData.add(cell.getStringCellValue ());
			                        break;
			                    case NUMERIC:
			                    	rowData.add((int)cell.getNumericCellValue() + "");
			                        break;
					default:
						rowData.add("");
						break;
		                	}
		                }		                
			default:
				rowData.add("");
				break;
	                }
	            }
	            excelData.add(rowData);
	        }
	    } catch(IOException e){
	        System.out.println("IOException " + e.getMessage());
	        System.out.println("轉換失敗,請檢查Excel檔案與格式是否正確");
	    }
	    for(int i=0 ; i<excelData.size(); i++){
	    	System.out.println("Excel Row "+ i +" Data : " + excelData.get(i));
	    }
	    
	}
}

程式會把Excel內的資料轉換為ArrayList,輸出內容如下:

Excel Row 0 Data : [Product ID, Product Name, Product Price, Quantity, Total]
Excel Row 1 Data : [100001, 產品名稱1, 10, 5, 50, ]
Excel Row 2 Data : [100002, 產品名稱2, 20, 10, 200, ]
Excel Row 3 Data : [100003, 產品名稱3, 30, 15, 450, ]

You may also like...

14,437 Responses

  1. Dnrtwix表示:

    Привет, друзья!
    Купить документ о получении высшего образования можно в нашей компании.
    diploms-x.com/kupit-diplom-o-srednem-obrazovanii
    Удачи!

  2. Great site! I recommend to everyone!web design in fort smith

  3. Yreffag表示:

    Привет!
    Приобрести диплом любого университета.
    rogerfilms.com/index.php?title=??????_??????:_??????????_????_?????_?_??????????!
    Хорошей учебы!

  4. Xazrlsk表示:

    Привет, друзья!
    Предлагаем документы ВУЗов, расположенных в любом регионе Российской Федерации. Вы имеете возможность заказать диплом от любого учебного заведения, за любой год, указав необходимую специальность и хорошие оценки за все дисциплины. Документы выпускаются на “правильной” бумаге высшего качества. Это дает возможности делать государственные дипломы, которые невозможно отличить от оригинала. Они будут заверены всеми обязательными печатями и штампами.
    Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по приятным тарифам. Цена будет зависеть от выбранной специальности, года получения и ВУЗа. Стараемся поддерживать для заказчиков адекватную политику цен. Важно, чтобы документы были доступными для подавляющей массы наших граждан.
    landik-diploms-srednee.ru/kupit-diplom-volgograd  
    Успешной учебы!

  5. Diplomi_dxkl表示:

    купить диплом младшего воспитателя asxdiplomik24.ru .

  6. WilliamDeeli表示:

    Привет!
    Наши специалисты предлагают выгодно приобрести диплом, который выполняется на оригинальной бумаге и заверен печатями, штампами, подписями. Диплом способен пройти лубую проверку, даже при помощи профессионального оборудования. Достигайте цели быстро с нашим сервисом.
    uaforum.ukrbb.net/viewtopic.php?f=11&t=1837
    Хорошей учебы!

  7. Trefwpz表示:

    Здравствуйте!
    Сколько стоит диплом высшего и среднего образования и как его получить?
    http://www.rcauto.pl/modules.php?name=Your_Account&op=userinfo&username=ypygo
    Поможем вам всегда!.

  8. Uazrvxh表示:

    Привет!
    Где купить диплом по необходимой специальности?
    pokemon-go.onl/users/6146
    Удачи!

  9. Uazrysr表示:

    Здравствуйте!
    Заказать диплом о высшем образовании.
    lolipopnews.ru/byistroe-oformlenie-diplomov-na-zakaz

  10. Manrjpr表示:

    Добрый день!
    Где купить диплом по нужной специальности?
    Мы можем предложить документы институтов, которые расположены на территории всей РФ. Вы имеете возможность купить качественно сделанный диплом от любого высшего учебного заведения, за любой год, включая сюда документы СССР. Дипломы выпускаются на “правильной” бумаге самого высшего качества. Это дает возможность делать настоящие дипломы, не отличимые от оригинала. Они будут заверены всеми обязательными печатями и подписями.
    Мы готовы предложить дипломы любой профессии по доступным ценам.
    diploms-x24.ru/kupit-diplom-sankt-peterburg
    Окажем помощь!

  11. Mazrlwr表示:

    Привет, друзья!
    Заказать документ ВУЗа можно в нашей компании. Мы предлагаем документы об окончании любых ВУЗов РФ. Вы получите необходимый диплом по любой специальности, включая документы образца СССР. Даем гарантию, что при проверке документа работодателем, подозрений не появится.
    Мы изготавливаем дипломы любой профессии по выгодным тарифам. Стоимость зависит от выбранной специальности, года выпуска и ВУЗа. Всегда стараемся поддерживать для клиентов адекватную политику тарифов. Для нас очень важно, чтобы документы были доступными для большого количества граждан.
    yasqueencommunity.com/blogs/351/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%BE-%D0%BF%D1%80%D0%B8%D0%BE%D0%B1%D1%80%D0%B5%D1%82%D0%B0%D0%B5%D0%BC-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-%D0%B2-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-Russian-Diplom
    Будем рады вам помочь!

  12. Sazrssc表示:

    Привет, друзья!
    Мы готовы предложить дипломы любых профессий по выгодным ценам. Стоимость будет зависеть от выбранной специальности, года выпуска и образовательного учреждения. Стараемся поддерживать для клиентов адекватную ценовую политику. Для нас важно, чтобы дипломы были доступны для большого количества наших граждан.
    hubwebsites.com/story18321637/%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%BF%D0%B0%D1%80%D0%B8%D0%BA%D0%BC%D0%B0%D1%85%D0%B5%D1%80%D0%B0

  13. Diplomi_yhPa表示:

    купить диплом с реестром цена москва diplomasx.com .

  14. Wazranz表示:

    Привет!
    Сколько стоит получить диплом высшего и среднего образования легально?
    camp-fire.jp/profile/BernardCruz

  15. Danrcah表示:

    Привет!
    Где купить диплом по необходимой специальности?
    Мы готовы предложить дипломы психологов, юристов, экономистов и других профессий по приятным ценам. Стоимость зависит от определенной специальности, года выпуска и образовательного учреждения. Всегда стараемся поддерживать для заказчиков адекватную политику тарифов. Для нас очень важно, чтобы документы были доступными для большого количества наших граждан.
    Для вас изготавливаем дипломы любых профессий по приятным тарифам.
    eurodelo.ru/kupit-diplom-rf-v-moskve-vyisokie-standartyi-i-garantii
    Окажем помощь!.

  16. Cazrfjc表示:

    Привет, друзья!
    Мы готовы предложить документы ВУЗов, которые расположены в любом регионе Российской Федерации. Можно купить качественный диплом за любой год, включая сюда документы старого образца СССР. Документы выпускаются на “правильной” бумаге высшего качества. Это дает возможность делать государственные дипломы, которые невозможно отличить от оригинала. Они будут заверены всеми требуемыми печатями и подписями.
    humhub.mn.co/posts/61838229

  17. Lazrilm表示:

    Привет!
    Где купить диплом специалиста?
    Заказать диплом любого ВУЗа.
    chrstms.ru/club/user/11503/blog/11039/

  18. Lariormry表示:

    Как приобрести аттестат о среднем образовании в Москве и других городах
    ast-diplomas.com/kupit-diplom-moskva

  19. Dnrtpvx表示:

    Привет, друзья!
    Приобрести документ университета вы имеете возможность в нашей компании.
    ast-diplomy24.ru/kupit-diplom-krasnoyarsk
    Успехов в учебе!

  20. Sizin icin en iyi online casino Sweet bonanza

  21. Xazrhys表示:

    Привет!
    Предлагаем документы ВУЗов, расположенных на территории всей Российской Федерации. Можно приобрести диплом за любой год, включая документы старого образца. Дипломы и аттестаты печатаются на “правильной” бумаге высшего качества. Это позволяет делать настоящие дипломы, которые не отличить от оригинала. Они заверяются необходимыми печатями и подписями.
    Мы изготавливаем дипломы любой профессии по доступным ценам. Цена может зависеть от выбранной специальности, года получения и ВУЗа. Стараемся поддерживать для клиентов адекватную политику цен. Для нас очень важно, чтобы документы были доступны для подавляющей массы граждан.
    landik-diploms-srednee.ru/kupit-diplom-v-voronezhe  
    Удачи!

  22. Diplomi_fbEa表示:

    Привет, друзья!
    Купить документ о получении высшего образования можно в нашей компании.
    asxdiplomik.com/kupit-diplom-ekaterinbur

  23. Qazrdoo表示:

    Здравствуйте!
    Как правильно приобрести диплом колледжа или ПТУ в России, важные моменты.
    Купить диплом о высшем образовании.
    permn.ru/blogs/1/zakazyvaem-diplom-v-luchshem-internetmagazine-po-komfortnoy-tsene.php

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。