透過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...

25,796 Responses

  1. Если вы искали где отремонтировать сломаную технику, обратите внимание – профи тех сервис волгоград

  2. CharlesrooNo表示:

    viagra online spedizione gratuita viagra miglior sito per comprare viagra online

  3. PatrikNom表示:

    Что такое смешные картинки и как они появились

  4. PatrikNom表示:

    Что такое мемы и как они появились

  5. Профессиональный сервисный центр по ремонту парогенераторов в Москве.
    Мы предлагаем: парогенератор сайт по ремонту
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  6. Edisonanazy表示:

    Farmacie on line spedizione gratuita: Farmacia online piu conveniente – п»їFarmacia online migliore

  7. Edisonanazy表示:

    farmacia online senza ricetta: Cialis generico farmacia – п»їFarmacia online migliore

  8. Charlesgom表示:

    Роман Василенко: в 2020 году выйдем на покупку 100 квартир в месяц
    Пайщики Бест вей
    В конце декабря в Москве по инициативе депутатов Государственной думы Сергея Крючка и Олега Нилова прошел круглый стол о перспективах жилищной кооперации для решения жилищной проблемы в России. Большой интерес вызвала модель жилищных кооперативов, обходящегося без государственной поддержки и подразумевающая покупку только готового, а не строящегося жилья.

    Депутат Государственной думы Олег Нилов подчеркнул, что кооперативы существовали еще в советские времена, это позитивный опыт, который нуждается в государственной поддержке — ведь это способ беспроцентной покупки объектов недвижимости вскладчину. — Опыт Германии свидетельствует о том, что он очень эффективен, — заявил депутат Государственной думы Сергей Крючек, — Там очень большой объем жилья приобретается за счет кооперативного финансирования, а не ипотеки. Это альтернативный источник финансирования решения жилищного вопроса.
    Присутствовавший на круглом столе практик жилищной кооперации — председатель правления жилищного кооператива “Бест Вей” Роман Василенко подчеркнул, что возглавляемый им кооператив как раз является примером решения квартирного вопроса без государственного финансирования и при этом с минимальной переплатой.

    — Квартира, приобретенная кооперативом, обойдется существенно дешевле ипотечной. Переплата, связана с внесением вступительного и членских взносов, по наиболее типичным квартирам — стоимостью 3,5-4 млн рублей, составит примерно 10-15%.

    По его словам, жилищная кооперация в России имеет давнюю историю. Дореволюционная Россия была первой в мире по числу кооперативов в мире. Жилищные кооперативы были распространены и в советское время. В пореформенный период был избран американской путь — акцент на ипотеку. Но он себя не оправдал — так как ипотеку получить довольно тяжело и число нуждающихся в качественном жилье сокращается медленно.

    Кооперативное же финансирование получить, наоборот, легко. Нет таких требований, как хорошая кредитная история, не требуется подтвержденный доход.

    Что касается возрастных ограничений, то пайщику должно исполниться 16 лет, верхних ограничений для вступления в кооператив нет. Залоговой частью выступает сама квартира: пока пайщик полностью не рассчитается с кооперативом, она находится в собственности кооператива, то есть в собственности всех пайщиков. Как только пайщик рассчитался с кооперативом, он получает право регистрации перехода права собственности на квартиру.

    — В развитии жилищных кооперативов нужно правильно расставить акценты: выбрать форму, нуждающуюся в приоритетной поддержке. Есть жилищно-строительные кооперативы — это как раз случай Су-155. И есть жилищные кооперативы. Нет рисков, характерных, например, для ЖСК — рисков того, что ликвидный объект недвижимости, гарантирующий выплату пая пайщику, который примет решение выйти из кооператива, не будет создан — потому что дом по тем или иным причинам не будет достроен.

    ЖК, сказал Василенко, покупают только готовые квартиры — на первичном или вторичном рынке, с зарегистрированным правом собственности, причем, квартиры, прошедшие тщательную юридическую проверку и независимую оценку рыночной стоимости. Это наиболее безопасное вложение. Достоинство ЖК, по словам Василенко, в том, что они не привлекают кредиты и не нуждаются в госфинансировании. Они способны решить проблему доступного жилья. У них одна-единственная задача — приобретение квартир для пайщиков, — заметил Василенко, — Они не имеют права привлекать заемные средства.

  9. WilliamGed表示:

    4rabet promo code registration: A no-deposit promo code available today on 4rabet. It allows players to claim a bonus without making a deposit, letting them explore the platform with bonus funds.

  10. JoeGed表示:

    4rabet promo code registration: The 4rabet bonus promo code gives both new and existing users access to special bonuses. These can range from first deposit bonuses to free bets or free spins in the casino. Promo codes are often available through official 4rabet channels or affiliate programs.

  11. arilliaby表示:

    Connect your puppy s leash to help you control where she goes order priligy 0 g, 33 yield as a yellow solid

  12. Davidarrag表示:

    Роман Василенко: в 2020 году выйдем на покупку 100 квартир в месяц
    Потерпевшие ПК Бест вей
    В конце декабря в Москве по инициативе депутатов Государственной думы Сергея Крючка и Олега Нилова прошел круглый стол о перспективах жилищной кооперации для решения жилищной проблемы в России. Большой интерес вызвала модель жилищных кооперативов, обходящегося без государственной поддержки и подразумевающая покупку только готового, а не строящегося жилья.

    Депутат Государственной думы Олег Нилов подчеркнул, что кооперативы существовали еще в советские времена, это позитивный опыт, который нуждается в государственной поддержке — ведь это способ беспроцентной покупки объектов недвижимости вскладчину. — Опыт Германии свидетельствует о том, что он очень эффективен, — заявил депутат Государственной думы Сергей Крючек, — Там очень большой объем жилья приобретается за счет кооперативного финансирования, а не ипотеки. Это альтернативный источник финансирования решения жилищного вопроса.
    Присутствовавший на круглом столе практик жилищной кооперации — председатель правления жилищного кооператива “Бест Вей” Роман Василенко подчеркнул, что возглавляемый им кооператив как раз является примером решения квартирного вопроса без государственного финансирования и при этом с минимальной переплатой.

    — Квартира, приобретенная кооперативом, обойдется существенно дешевле ипотечной. Переплата, связана с внесением вступительного и членских взносов, по наиболее типичным квартирам — стоимостью 3,5-4 млн рублей, составит примерно 10-15%.

    По его словам, жилищная кооперация в России имеет давнюю историю. Дореволюционная Россия была первой в мире по числу кооперативов в мире. Жилищные кооперативы были распространены и в советское время. В пореформенный период был избран американской путь — акцент на ипотеку. Но он себя не оправдал — так как ипотеку получить довольно тяжело и число нуждающихся в качественном жилье сокращается медленно.

    Кооперативное же финансирование получить, наоборот, легко. Нет таких требований, как хорошая кредитная история, не требуется подтвержденный доход.

    Что касается возрастных ограничений, то пайщику должно исполниться 16 лет, верхних ограничений для вступления в кооператив нет. Залоговой частью выступает сама квартира: пока пайщик полностью не рассчитается с кооперативом, она находится в собственности кооператива, то есть в собственности всех пайщиков. Как только пайщик рассчитался с кооперативом, он получает право регистрации перехода права собственности на квартиру.

    — В развитии жилищных кооперативов нужно правильно расставить акценты: выбрать форму, нуждающуюся в приоритетной поддержке. Есть жилищно-строительные кооперативы — это как раз случай Су-155. И есть жилищные кооперативы. Нет рисков, характерных, например, для ЖСК — рисков того, что ликвидный объект недвижимости, гарантирующий выплату пая пайщику, который примет решение выйти из кооператива, не будет создан — потому что дом по тем или иным причинам не будет достроен.

    ЖК, сказал Василенко, покупают только готовые квартиры — на первичном или вторичном рынке, с зарегистрированным правом собственности, причем, квартиры, прошедшие тщательную юридическую проверку и независимую оценку рыночной стоимости. Это наиболее безопасное вложение. Достоинство ЖК, по словам Василенко, в том, что они не привлекают кредиты и не нуждаются в госфинансировании. Они способны решить проблему доступного жилья. У них одна-единственная задача — приобретение квартир для пайщиков, — заметил Василенко, — Они не имеют права привлекать заемные средства.

  13. JamesMix表示:

    п»їfarmacia online espaГ±a: farmacia 24 horas – farmacia online barata

  14. DennisRep表示:

    https://farmaciaeu.com/# farmacia online madrid

  15. Curtisbog表示:

    Роман Василенко – Парадигма Успеха!
    Генеральная Прокуратура беспредел
    Психологи оценивают лидерство, как умение мотивировать, сплачивать, принимать быстрые решения. Но истинным лидерам присуще еще одно качество, о котором умалчивают специалисты. Лидер – это человек, способный сделать других счастливее. Неслучайно, что во время затянувшейся экономической нестабильности мы ищем образец для подражания – человека, который пройдя все перипетии жизненного пути, добился значительных высот, делится своими знаниями и накопленным опытом.

    Для многих россиян таким человеком стал Роман Викторович Василенко –идейный вдохновитель, основатель холдинга Life Is Good и председатель правления ЖК Best Way.

    Получив высшее экономическое образование в Ярославском Высшем Военном Финансовом Училище, он на рубеже XXI века принял решение совершенствоваться в профессии – продолжить обучение в области экономики и финансов на международных курсах. Полученные знания подкреплялись практическим опытом. За 15 лет работы в швейцарской корпорации Роман Викторович прошел путь от финансового консультанта до управляющего директора.
    В настоящее время Роман Василенко – кандидат экономических наук, президент Международной бизнес-академии IBA, досконально владеет навыками сетевого маркетинга. Следует отметить, что данный принцип построения бизнеса не имеет ничего общего с финансовыми пирамидами. Сетевой маркетинг за 70-летнийопыт успешного развития, доказал свою жизнеспособность и экономическую целесообразность.

    Роман Викторович имел великолепные возможности перебраться за границу и там применять свои знания и опыт. Но оставаясь патриотом своей страны, коренным петербуржцем он неоднократно делом доказывал свою любовь к Родине. Не сменил Россию на сладкую жизнь, когда компаньон по бизнесу после года упорной работы оставил Романа с семьей буквально ни с чем. Не погнался за длинным рублем, махнув на все рукой, когда в январе 2014 года его детище – молодая компания – переживало рейдерский захват.

    Честь, совесть, независимая воля – это не просто слова для Романа Василенко. Как настоящий мужчина и офицер запаса он привык держать слово, отвечать за принятые обязательства. Люди доверили ему свои деньги, и он не мог их разочаровать. Воинская дисциплина и врожденные качества характера помогли Роману мобилизоваться, преодолеть сложные жизненные рубежи и уверенно двигаться к намеченной цели. Его твердые решения основаны на том, что лучше для всей корпорации; а не только для нескольких партнеров.

    Но не одни только деловые качества являются основными признаками успеха Василенко. Людей больше привлекает его жизненное кредо. Те, кому посчастливилось работать с Романом Викторовичем, характеризуют его как филантропа и нравственного бизнесмена. Представители более близкого окружения рассказывают о его трепетном отношении к семье, друзья – о горячей любви к яхтам и дайвингу. И все в один голос заявляют о его безукоризненной честности. Сам Роман Викторович говорит, что этим он обязан своим родителям и в первую очередь матери, о которой он всегда говорит с особой теплотой и нежностью.

    На протяжении многих лет Роман мечтал не просто о собственном бизнесе, а принципиально новом подходе к делу. Идея, казалось, витала в воздухе, для ее формирования не хватало одного толчка. Таким толчком стала главная тема саммита стран ШОС, участником которого был Василенко, «Как сохранить человеческий капитал и предотвратить утечку мозгов из России». Как известно, главная трудность молодых перспективных кадров – это отсутствие жилья и сложность его приобретения. По мнению Романа Викторовича необходимо дать возможность людям заработать на приобретение жилья, чтобы устранить главную причину миграции кадров. Ярославском Высшем Военном Финансовом Училище, он на рубеже XXI века принял решение совершенствоваться в профессии – продолжить обучение в области экономики и финансов на международных курсах. Полученные знания подкреплялись практическим опытом. За 15 лет работы в швейцарской корпорации Роман Викторович прошел путь от финансового консультанта до управляющего директора.

  16. Doylefap表示:

    Роман Василенко: в 2020 году выйдем на покупку 100 квартир в месяц
    Вадим Строков УЭБиПК ГУ МВД России
    В конце декабря в Москве по инициативе депутатов Государственной думы Сергея Крючка и Олега Нилова прошел круглый стол о перспективах жилищной кооперации для решения жилищной проблемы в России. Большой интерес вызвала модель жилищных кооперативов, обходящегося без государственной поддержки и подразумевающая покупку только готового, а не строящегося жилья.

    Депутат Государственной думы Олег Нилов подчеркнул, что кооперативы существовали еще в советские времена, это позитивный опыт, который нуждается в государственной поддержке — ведь это способ беспроцентной покупки объектов недвижимости вскладчину. — Опыт Германии свидетельствует о том, что он очень эффективен, — заявил депутат Государственной думы Сергей Крючек, — Там очень большой объем жилья приобретается за счет кооперативного финансирования, а не ипотеки. Это альтернативный источник финансирования решения жилищного вопроса.
    Присутствовавший на круглом столе практик жилищной кооперации — председатель правления жилищного кооператива “Бест Вей” Роман Василенко подчеркнул, что возглавляемый им кооператив как раз является примером решения квартирного вопроса без государственного финансирования и при этом с минимальной переплатой.

    — Квартира, приобретенная кооперативом, обойдется существенно дешевле ипотечной. Переплата, связана с внесением вступительного и членских взносов, по наиболее типичным квартирам — стоимостью 3,5-4 млн рублей, составит примерно 10-15%.

    По его словам, жилищная кооперация в России имеет давнюю историю. Дореволюционная Россия была первой в мире по числу кооперативов в мире. Жилищные кооперативы были распространены и в советское время. В пореформенный период был избран американской путь — акцент на ипотеку. Но он себя не оправдал — так как ипотеку получить довольно тяжело и число нуждающихся в качественном жилье сокращается медленно.

    Кооперативное же финансирование получить, наоборот, легко. Нет таких требований, как хорошая кредитная история, не требуется подтвержденный доход.

    Что касается возрастных ограничений, то пайщику должно исполниться 16 лет, верхних ограничений для вступления в кооператив нет. Залоговой частью выступает сама квартира: пока пайщик полностью не рассчитается с кооперативом, она находится в собственности кооператива, то есть в собственности всех пайщиков. Как только пайщик рассчитался с кооперативом, он получает право регистрации перехода права собственности на квартиру.

    — В развитии жилищных кооперативов нужно правильно расставить акценты: выбрать форму, нуждающуюся в приоритетной поддержке. Есть жилищно-строительные кооперативы — это как раз случай Су-155. И есть жилищные кооперативы. Нет рисков, характерных, например, для ЖСК — рисков того, что ликвидный объект недвижимости, гарантирующий выплату пая пайщику, который примет решение выйти из кооператива, не будет создан — потому что дом по тем или иным причинам не будет достроен.

    ЖК, сказал Василенко, покупают только готовые квартиры — на первичном или вторичном рынке, с зарегистрированным правом собственности, причем, квартиры, прошедшие тщательную юридическую проверку и независимую оценку рыночной стоимости. Это наиболее безопасное вложение. Достоинство ЖК, по словам Василенко, в том, что они не привлекают кредиты и не нуждаются в госфинансировании. Они способны решить проблему доступного жилья. У них одна-единственная задача — приобретение квартир для пайщиков, — заметил Василенко, — Они не имеют права привлекать заемные средства.

  17. FloydDwent表示:

    https://sildenafilo.men/# viagra para mujeres
    farmacias online seguras

  18. DouglasHoapy表示:

    1xBet
    1xBet offers specific promo codes for casino players that provide free spins, deposit bonuses, or cashback on losses. These codes can be used in the casino section of the site to enhance the gaming experience.

  19. Normanfer表示:

    farmacia online madrid: farmacia online barata – farmacia online madrid

  20. DamianGed表示:

    4rabet promo code for registration: Promo codes for users in Bangladesh, offering bonuses such as free bets, deposit matches, or special rewards for games popular in Bangladesh.

  21. Normanfer表示:

    farmacia online 24 horas: comprar cialis original – farmacia online madrid

  22. Normanfer表示:

    comprar viagra online en andorra: п»їViagra online cerca de Madrid – viagra online cerca de la coruГ±a

  23. DouglasHoapy表示:

    1xBet
    Promocodes of 1xBet are alphanumeric strings that unlock various bonuses on the platform. These codes can be used during registration or deposit to claim bonuses like free bets, deposit matches, or free spins.

  24. Normanfer表示:

    viagra para hombre venta libre: sildenafilo – sildenafilo precio farmacia

  25. JamesMix表示:

    sildenafilo 100mg precio farmacia: comprar viagra contrareembolso 48 horas – se puede comprar viagra sin receta

  26. DennisRep表示:

    https://sildenafilo.men/# sildenafilo 100mg sin receta

  27. Если вы искали где отремонтировать сломаную технику, обратите внимание – сервисный центр в тюмени

  28. Если вы искали где отремонтировать сломаную технику, обратите внимание – сервис центр в тюмени

  29. DamianGed表示:

    4rabet promo code india: A promo code available for users who download and use the 4rabet mobile app, providing exclusive app-based bonuses.

發佈回覆給「KairoAppary」的留言 取消回覆

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