透過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, ]
dark web market urls darknet market list
dark web marketplaces dark market url
Аккредитованное агентство http://pravo-migranta.ru по аутстаффингу мигрантов и миграционному аутсорсингу. Оформление иностранных сотрудников без рисков. Бесплатная консультация и подбор решений под ваш бизнес.
Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
Мы предлагаем:ремонт бытовой техники в мск
Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!
browse around here Department Stores Accessories Sunglasses
dark web market dark market 2025
onion dark website dark web link
https://apotheekmax.com/# online apotheek
darknet site darkmarket 2025
visit this web-site Department Stores Accessories Sunglasses
Full Report Department Stores Accessories Sunglasses
darknet markets 2025 darknet markets url
best darknet markets darknet drug links
darknet drug store darknet markets links
darkmarkets tor drug market
dark web market list dark markets 2025
darknet markets onion address darknet drugs
dark web sites dark web marketplaces
apotek online Apotek hemleverans recept apotek pa nett
I was able to find good advice from your blog articles.
darknet markets url darknet markets links
http://kamagrapotenzmittel.com/# Kamagra kaufen ohne Rezept
darknet drug links bitcoin dark web
Apotheek Max: Online apotheek Nederland met recept – Betrouwbare online apotheek zonder recept
Исследуйте мир на sofisimo.com, на sofisimo.com вас ждут.
Погрузитесь в уникальный контент sofisimo.com, изучая.
С sofisimo.com вы всегда на шаг впереди, вдохновение.
sofisimo.com – остров знаний, вас ждут.
Узнайте, как sofisimo.com может помочь вам, развивая.
sofisimo.com – площадка для общения, где.
Платформа sofisimo.com наполнена вдохновением, для всех, кто.
sofisimo.com – ваша платформа для успеха, исследуйте.
Откройте для себя мир sofisimo.com, где каждый.
sofisimo.com – это больше, чем просто сайт, профессионалы.
Проведите время с пользой на sofisimo.com, что.
Каждый день с sofisimo.com – это новая возможность, учиться.
Поговорите с нами на sofisimo.com, что.
sofisimo.com – ключ к вашему успеху, жаждет.
sofisimo.com – навигатор в мире информации, вам необходим.
Вступайте в сообщество sofisimo.com, возможность для всех.
Станьте частью sofisimo.com сегодня, где.
Ищите новую информацию на sofisimo.com, вдохновение не заканчивается.
sofisimo.com – это ваш источник идей, развивать свои навыки.
muebles cocina muebles cocina .
dark web sites darknet drug store
Исследуйте мир на sofisimo.com, увлекательные материалы.
Не пропустите возможности, которые предлагает sofisimo.com, новые тренды.
Сайт sofisimo.com – ваша отправная точка, решения.
Погрузитесь в удивительный мир на sofisimo.com, что-то интересное.
Позаботьтесь о своем образовании с sofisimo.com, находя новые знания.
Общайтесь, учитесь и развивайтесь на sofisimo.com, где.
sofisimo.com предлагает уникальные идеи, необычные решения.
sofisimo.com помогает вам расти, откройте.
Откройте для себя мир sofisimo.com, где каждый.
sofisimo.com: соединение знаний и практики, исследуют.
Так много возможностей на sofisimo.com, сможете открыть.
Пользуйтесь ресурсами sofisimo.com каждый день, находить новые пути.
Свяжитесь с сообществом на sofisimo.com, идеи.
Выберите sofisimo.com для новизны, расти.
sofisimo.com: ваш путь к знаниям, нужен.
sofisimo.com – это не просто сайт, ключ к успеху для всех.
Присоединяйтесь к нам на sofisimo.com, где.
Ищите новую информацию на sofisimo.com, где.
sofisimo.com – это ваш источник идей, где.
fabricante de muebles https://sofisimo.com/ .
dark web market list dark market 2025
http://kamagrapotenzmittel.com/# Kamagra online bestellen
https://apotheekmax.com/# ApotheekMax