透過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,460 Responses

  1. En guvenilir kumarhanede kazan?n Sweet bonanza

  2. Pazrwue表示:

    Привет!
    Мы предлагаем дипломы любой профессии по приятным ценам. Цена будет зависеть от выбранной специальности, года получения и университета.
    landik-diploms-srednee.ru/kupit-diplom-saratov  
    Удачи!

  3. Sazrulq表示:

    Добрый день!
    Как приобрести диплом техникума с минимальными рисками
    buldingnews.ru/byistroe-oformlenie-diploma-nadezhno-i-konfidentsialno
    Рады оказаться полезными!.

  4. Cazrypv表示:

    Добрый день!
    Приобрести диплом о высшем образовании.
    Мы предлагаем документы ВУЗов, которые расположены на территории всей России. Можно приобрести диплом за любой год, в том числе документы СССР. Документы выпускаются на бумаге самого высокого качества. Это дает возможности делать государственные дипломы, не отличимые от оригинала. Документы будут заверены необходимыми печатями и штампами.
    shop.robrowser.net/index.php?/files/file/41-%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%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-%D0%BF%D0%BE-%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8/

  5. Razrxol表示:

    Здравствуйте!
    Наш сервис предлагает купить диплом высочайшего качества, неотличимый от оригинала без использования дорогостоящего оборудования и опытного специалиста.
    ssd-astra.ru/forum/viewtopic.php?f=14&t=7053
    Успехов в учебе!

  6. Diplomi_tcEa表示:

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

  7. Dnrtqko表示:

    Привет, друзья!
    Заказать документ о получении высшего образования вы сможете в нашем сервисе.
    ast-diploms24.ru/kupit-diplom-moskva
    Удачи!

  8. Yrefshh表示:

    Привет, друзья!
    Купить диплом любого ВУЗа.
    blog.kmu.edu.tr/nejlacsahiner/2022/08/23/merhaba-dunya
    Хорошей учебы!

  9. Trefqcq表示:

    Привет, друзья!
    Как приобрести диплом о среднем образовании в Москве и других городах
    http://www.superstitionism.com/forum/profile.php?id=1393264
    Поможем вам всегда!.

  10. Seveceginiz bir kumarhane Sweet bonanza

  11. En guvenilir online casino Sweet bonanza

  12. Danrhvv表示:

    Привет!
    Где купить диплом специалиста?
    Мы можем предложить дипломы любых профессий по доступным ценам.
    hobby-svarka.ru/topic5511.html?&p=7049

  13. WilliamDeeli表示:

    Привет, друзья!
    Наши специалисты предлагают выгодно и быстро приобрести диплом, который выполняется на оригинальном бланке и заверен печатями, водяными знаками, подписями должностных лиц. Наш документ пройдет лубую проверку, даже при использовании специфических приборов. Решите свои задачи быстро с нашей компанией.
    rytof.ru/node/16136
    Хорошей учебы!

  14. Diplomi_qtkl表示:

    купить диплом иэусп asxdiplomik24.ru .

  15. Uazratl表示:

    Добрый день!
    Где приобрести диплом по актуальной специальности?
    fauna.0pk.me/viewtopic.php?id=1341#p6255
    Успешной учебы!

  16. WilliamDeeli表示:

    Добрый день!
    Наши специалисты предлагают быстро и выгодно приобрести диплом, который выполнен на бланке ГОЗНАКа и заверен печатями, водяными знаками, подписями официальных лиц. Диплом способен пройти любые проверки, даже при использовании специальных приборов. Решите свои задачи быстро и просто с нашими дипломами.
    http://www.podzemie.6f.sk/profile.php?lookup=17613
    Хорошей учебы!

  17. Diplomi_zskl表示:

    купить диплом о высшем образовании с проведением http://diploms-x.com/ .

  18. Manrmhb表示:

    Привет, друзья!
    Где приобрести диплом специалиста?
    Мы можем предложить документы ВУЗов, расположенных в любом регионе РФ. Можно купить качественный диплом от любого ВУЗа, за любой год, включая документы старого образца СССР. Дипломы выпускаются на бумаге самого высшего качества. Это дает возможности делать государственные дипломы, которые невозможно отличить от оригинала. Документы будут заверены всеми обязательными печатями и подписями.
    Мы изготавливаем дипломы любых профессий по выгодным тарифам.
    ast-diplom24.ru/kupit-diplom-voronezh
    Всегда вам поможем!

  19. Wazrqfa表示:

    Привет!
    Мы готовы предложить документы ВУЗов, которые находятся в любом регионе Российской Федерации. Вы имеете возможность заказать качественный диплом от любого заведения, за любой год, включая документы СССР. Дипломы и аттестаты выпускаются на бумаге самого высшего качества. Это дает возможность делать государственные дипломы, которые невозможно отличить от оригинала. Они будут заверены всеми обязательными печатями и штампами.
    niceroleplay.getbb.ru/viewtopic.php?t=787

  20. Lazreml表示:

    Добрый день!
    Где заказать диплом специалиста?
    Приобрести диплом ВУЗа.
    http://www.politikforum.ru/member.php?u=13385920

  21. Zazryfi表示:

    Добрый день!
    Заказать документ о получении высшего образования вы можете в нашей компании в Москве. Мы предлагаем документы об окончании любых ВУЗов Российской Федерации. Вы сможете получить необходимый диплом по любым специальностям, любого года выпуска, в том числе документы старого образца.
    subscribe.ru/member/quick
    Успехов в учебе!

  22. Diplomi_xwei表示:

    купить диплом пожарного ast-diploms.com .

  23. Kumar oynamak icin en iyi secim Sweet bonanza

  24. Dnrthak表示:

    Здравствуйте!
    Купить документ института вы можете у нас в столице.
    asxdiplomik24.ru/kupit-diplom-magistra
    Успешной учебы!

  25. Diplomi_deKn表示:

    купить диплом колледжа отзывы купить диплом колледжа отзывы .

  26. Fazrqgj表示:

    Здравствуйте!
    Мы изготавливаем дипломы любых профессий по приятным тарифам. Стоимость может зависеть от выбранной специальности, года получения и образовательного учреждения.
    Где заказать диплом по нужной специальности?
    Приобрести диплом о высшем образовании
    arusak-diploms-srednee.ru/kupit-diplom-v-rostove-na-donu  
    Хорошей учебы!

  27. Cazrcax表示:

    Добрый день!
    Мы можем предложить документы техникумов, которые расположены в любом регионе России. Вы имеете возможность заказать качественный диплом от любого заведения, за любой год, включая сюда документы старого образца. Документы делаются на “правильной” бумаге самого высшего качества. Это дает возможность делать государственные дипломы, которые невозможно отличить от оригинала. Они заверяются всеми требуемыми печатями и подписями.
    Приобрести диплом любого ВУЗа.
    iie1edgkc.frewwebs.com/28827538/%D0%9A%D0%B0%D0%BA-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE-%D0%B1%D1%83%D0%B4%D0%B5%D1%82-%D0%BD%D0%B5%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%BE-%D0%BF%D1%80%D0%B8%D0%BE%D0%B1%D1%80%D0%B5%D1%81%D1%82%D0%B8-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5
    Успешной учебы!

  28. Qazrqey表示:

    Добрый день!
    Где купить диплом по нужной специальности?
    Наша компания предлагает выгодно приобрести диплом, который выполняется на оригинальной бумаге и заверен мокрыми печатями, водяными знаками, подписями официальных лиц. Диплом способен пройти лубую проверку, даже с использованием специально предназначенного оборудования. Решите свои задачи быстро и просто с нашей компанией.
    Заказать диплом о высшем образовании.
    9yzqnf5yu.blogsmine.com/28727827/%D0%94%D0%B5%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0-%D0%B0%D1%82%D1%82%D0%B5%D1%81%D1%82%D0%B0%D1%82%D0%B0-%D0%B2-%D0%B7%D0%BD%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D0%BE%D0%BC-%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

發佈留言

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