透過Java解析Excel檔案
也是一個工作中遇到的情境,很多單位想讓內部人員利用Excel維護資料(因為維護上比較簡單方便),且想讓這份資料透過網頁呈現給一般網友閱讀,所以整體後端的流程應該是:
- 將維護的Excel透過網頁介面上傳
- 將上傳的Excel轉換成XML
- 網頁去讀取這份XML來呈現
透過以上的三個步驟,就可以完成客戶想要效果。
本範例展示的是讀取Excel的XLS格式(新版Excel為XLSX格式),並轉換成陣列的方法(寫入XML在前面的範例就有了),我們選用讀取Excel的Library是Apache POI,而檔內已經有以下的資料,其中Total是公式欄位,計算Price x Quantity:
ID | Name | Price | Quantity | Total |
100001 | 產品名稱1 | 10 | 5 | 50 |
100002 | 產品名稱2 | 20 | 10 | 200 |
100003 | 產品名稱3 | 30 | 15 | 450 |
以下是讀取的程式範例:
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, ]
copegus bestellen
Всё, что нужно знать о покупке аттестата о среднем образовании без рисков
asxdiplomik.com/kupit-diplom-ekaterinbur
Thank you for shedding light on this subject. The perspective is refreshing!
Как официально купить аттестат 11 класса с упрощенным обучением в Москве
asxdiplomik.com/kupit-diplom-ekaterinbur
Здравствуйте!
Мы готовы предложить документы ВУЗов, которые расположены в любом регионе России. Можно приобрести диплом за любой год, указав подходящую специальность и оценки за все дисциплины. Документы делаются на “правильной” бумаге самого высшего качества. Это позволяет делать настоящие дипломы, не отличимые от оригинала. Они будут заверены необходимыми печатями и подписями.
azat.on.kg/blogs/1029/%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%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%BB%D1%83%D1%87%D1%88%D0%B5%D0%BC-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%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
Добрый день!
Купить диплом любого университета
landik-diploms-srednee.ru/diplom-s-reestromkupit-kupit В
Удачи!
Привет!
Диплом вуза купить официально с упрощенным обучением в Москве
mdr7.ru/viewtopic.php?f=6&t=8920&sid=7dd574d5613e8941efb31372fb3c637b
Рады оказать помощь!.
магазин стим аккаунтов магазин стим аккаунтов .
магазин ключей и аккаунтов магазин ключей и аккаунтов .
интернет магазин аккаунтов http://www.magazin-akkauntov.ru .
магазин аккаунтов валорант http://www.magazin-akkauntov.ru/ .
магазин аккаунтов игр магазин аккаунтов игр .
Привет!
Приобрести документ о получении высшего образования вы имеете возможность у нас в столице.
ast-diplom24.ru/kupit-diplom-moskva
Хорошей учебы!
магазин аккаунтов вк магазин аккаунтов вк .
Great site! I recommend to everyone!online platform for luxury watches
магазин аккаунтов вконтакте http://www.magazin-akkauntov.ru .
Здравствуйте!
Где заказать диплом специалиста?
Купить диплом любого университета.
prof-aksay.ru/blogs/1/bolshoy-assortiment-dokumentov-v-izvestnom-internet-magazine.php
continuГІ
Find a Newcastle v Tottenham live stream for this Premier League clash Spurs have won their last two appearances at Molineux, something that certainly will be on the Wolves’ mind when they take the field on Sunday. Social Channels Using a VPN to watch or stream sports is legal in any country where VPNs are legal, including the US, UK and Canada, as long as you have a legitimate subscription to the service you're streaming. You should be sure your VPN is set up correctly to prevent leaks: Even where VPNs are legal, the streaming service may terminate the account of anyone it deems to be circumventing correctly applied blackout restrictions. Spurs have won their last two appearances at Molineux, something that certainly will be on the Wolves’ mind when they take the field on Sunday.
https://caideneauo284951.dsiblogger.com/60440907/icc-men-s-t20-world-cup-2024-bangladesh-schedule
The visitors had to wait until the fifth minute of stoppage time at the end of the game to finally kill off Wolves and Odegaard provided the finishing touch. With exclusive rights to screen every EPL match live this season, as well as German Bundesliga and Spanish La Liga games, streaming service Optus Sport is a particularly big draw for Aussie soccer fans. How to watch the Premier League match between Chelsea and Man City, as well as kick-off time and team news. Chelsea possible XI: Kepa; James, Silva, Colwill, Chilwell; Fernandez, Gallagher; Sterling, Chukwuemeka, Mudryk; Jackson. Sunday's Chelsea vs. West Ham match is streaming on Peacock. You'll need a Peacock Premium or Premium Plus account to catch the game live.
lasuna medication – cheap diarex pills himcolin medication
Добрый день!
Заказать документ ВУЗа вы имеете возможность в нашем сервисе.
ast-diplomy24.ru/kupit-diplom-sankt-peterburg
buy gasex no prescription – buy diabecon cheap order diabecon sale
озвучивание http://ozvuchivanie-pomeshhenij.ru/ .
озвучивание помещений озвучивание помещений .
озвучивание https://www.ozvuchivanie-pomeshhenij.ru .
озвучивание https://www.ozvuchivanie-pomeshhenij.ru .
озвучивание http://www.ozvuchivanie-pomeshhenij.ru .
озвучивание помещений озвучивание помещений .
Здравствуйте!
Мы готовы предложить документы техникумов, расположенных в любом регионе России. Вы можете заказать диплом от любого заведения, за любой год, указав актуальную специальность и хорошие оценки за все дисциплины. Документы делаются на “правильной” бумаге самого высокого качества. Это позволяет делать настоящие дипломы, не отличимые от оригиналов. Они заверяются всеми обязательными печатями и подписями.
antennastar.com/blogs/492/%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%B0%D1%82%D1%82%D0%B5%D1%81%D1%82%D0%B0%D1%82-%D0%B2-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5
Здравствуйте!
Купить документ института вы сможете в нашей компании.
ast-diplomas24.ru/kupit-diplom-voronezh
Удачи!