C# 讀取 Excel 教學|使用 NPOI 進行資料邏輯處理|C# Excel 系列

更新 發佈閱讀 10 分鐘

當資料不同時,C# Excel 程式的結構與邏輯就會非常重要。本篇將分享 C# Excel 資料處理優化的技巧,包含邏輯設計與程式結構改善,幫助你從「能用」進階到「符合客製化需求」。

我們再回顧一下,C# 讀取 Excel 教學|使用 NPOI 進行資料處理|C# Excel 系列 我們接到財務部門的同仁提出了一個需求,他們收到Excel的資料後,每次都要自己打開計算金額覺得很累,有沒有辦法請軟體工程師開發自動讀取Excel並計算裡面的金額加總?

目前我們已經會用程式的方式讀取Excel,只要把特定的金額欄位讀到後加總起來就可以達成財務部的需求,我們就趕快開始吧!

開始程式碼邏輯調整

1 . 開啟C# 讀取 Excel 教學:資料處理入門(NPOI)—— 轉職軟體工程師之路|Excel資料讀取 建立的程式

vocus|新世代的創作平台

2 . 依據需求調整範例程式碼

財務部希望將Excel中所有的貨品價格加總,最後再把總金額顯示出來。

vocus|新世代的創作平台

這時候我們就會想到我們的程式碼已經可以把每個格子(cell)的值讀取出來,現在只要把讀取到貨品價格的那欄裡面的數字都加總起來就可以。

讀取Excel格子數值的程式碼片段:

(範例版)

using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{

XSSFWorkbook workbook = new XSSFWorkbook(fs);


ISheet sheet = workbook.GetSheetAt(0);


for (int rowIndex = 0; rowIndex <= sheet.LastRowNum; rowIndex++)
{
IRow row = sheet.GetRow(rowIndex);
if (row != null)
{

for (int colIndex = 0; colIndex < row.LastCellNum; colIndex++)
{
ICell cell = row.GetCell(colIndex);
if (cell != null)
{

string cellValue = cell.ToString();
Console.WriteLine(cellValue);
}
}
}
}
}

(新版)

*(新增或修改的程式碼後面我會加//新增 或 //修改)

using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{

XSSFWorkbook workbook = new XSSFWorkbook(fs);


ISheet sheet = workbook.GetSheetAt(0);

int sumPrice = 0;//新增
for (int rowIndex = 1; rowIndex <= sheet.LastRowNum;rowIndex++)//修改
{
IRow row = sheet.GetRow(rowIndex);
if (row != null)
{

for (int colIndex = 0; colIndex < row.LastCellNum;colIndex++)
{
ICell cell = row.GetCell(colIndex);
if (cell != null)
{

string cellValue = cell.ToString();
Console.WriteLine(cellValue);
}

if(colIndex==4)//新增
{//新增
string cellValue = cell.ToString();//新增
int cellPrice = int.Parse(cellValue);//新增
sumPrice = sumPrice + cellPrice;//新增

}//新增

}
}
}
}

我們在讀取格子(cell)迴圈一個一個把格子的資料讀出來,我們需要加總的是第5欄貨品價格裡面的數值,因此我們在colIndex = 4 的時候,把cellValue取得的內容轉換成int(整數)相加,等到整個Excel全部讀完後,這些加總的數字就是這張Excel的總貨品價格。

新增或更改的程式碼:

新增程式碼:

int sumPrice = 0;

-------------------------------------------------------------------------------------------------------

先新增一個整數容器 ,用來相加貨品價格。

修改程式碼:

for (int rowIndex = 1; rowIndex <= sheet.LastRowNum; rowIndex++)

-------------------------------------------------------------------------------------------------------

原本int rowIndex = 0 這裡改成 int rowIndex = 1 ,因為我們Excel的第一列(Row)是標頭,不會有貨品價格,所以直接跳過第一列即可。

新增程式碼:

if(colIndex==4)

-------------------------------------------------------------------------------------------------------

用來判斷是否到第4個cell,如果到第4個cell再開始進入我們 if {}裡面做數字相加。

新增程式碼:

string cellValue = cell.ToString();

-------------------------------------------------------------------------------------------------------

取出格子(cell)裡面的值。

新增程式碼:

int cellPrice = int.Parse(cellValue);

-------------------------------------------------------------------------------------------------------

將取到的格子裡面的值cellValue 轉換成整數的型態,儲存到cellPrice裡面,到時候才能做數字加總。

int.Parse是.net提供的語法,Parse字面上的意思是解析,所以這個用法就是把值cellValue做整數(int)的轉換。

新增程式碼:

sumPrice = sumPrice + cellPrice;

-------------------------------------------------------------------------------------------------------

將sumPrice每次都等於之前的值加上每一格貨品價格cellPrice。

結論

用新版的程式跑完後sumPrice就會是所有的貨品價格加總,我們也順利完成財務部的需求了!




留言
avatar-img
ITT Fun
0會員
15內容數
主要內容會教大家如何快速有效轉職到中大型公司內部系統的軟體工程師。 程式真的沒有很困難,不論之前覺得學習太枯燥乏味或是其他因素而放棄或從未開始,這邊會帶給大家不同的體驗。 我們會用實際案例來當作教學主軸,用我親身的經歷讓大家快樂學習程式,過程中可以累積很多程式作品還會提升很多成就感,同時還能增加成功轉職的機會!
ITT Fun的其他內容
2026/03/31
當你已經了解如何讀取 Excel,接下來最重要的是看懂程式碼。本篇將針對 C# 讀取 Excel 的完整範例進行解析,逐步說明 NPOI 程式碼的運作方式,幫助你真正理解每一段邏輯,而不是只會複製貼上。
Thumbnail
2026/03/31
當你已經了解如何讀取 Excel,接下來最重要的是看懂程式碼。本篇將針對 C# 讀取 Excel 的完整範例進行解析,逐步說明 NPOI 程式碼的運作方式,幫助你真正理解每一段邏輯,而不是只會複製貼上。
Thumbnail
2026/03/19
除了寫入資料,C# 讀取 Excel 也是常見的開發需求。本篇將透過 NPOI 套件,帶你完成 Excel 資料讀取與處理的基本流程,適合剛接觸 Excel 自動化的新手,快速掌握資料匯入與解析技巧。
Thumbnail
2026/03/19
除了寫入資料,C# 讀取 Excel 也是常見的開發需求。本篇將透過 NPOI 套件,帶你完成 Excel 資料讀取與處理的基本流程,適合剛接觸 Excel 自動化的新手,快速掌握資料匯入與解析技巧。
Thumbnail
2026/03/17
如果你已經會用 C# 操作 Excel,下一步就是學習如何進行格式設定。本篇 C# NPOI 教學,將介紹如何使用 NPOI 套件來調整 Excel 樣式,例如字體、顏色、欄寬與儲存格格式,讓你的報表不只是能用,還能更專業。
Thumbnail
2026/03/17
如果你已經會用 C# 操作 Excel,下一步就是學習如何進行格式設定。本篇 C# NPOI 教學,將介紹如何使用 NPOI 套件來調整 Excel 樣式,例如字體、顏色、欄寬與儲存格格式,讓你的報表不只是能用,還能更專業。
Thumbnail
看更多
你可能也想看
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
前言:重新定義「被取代」的真正意涵 當我們談論 AI 將在 2030 年「取代」軟體工程師時,這個論述往往過於簡化了一個複雜的轉型過程。真正的問題不是 AI 是否會取代程式設計師,而是哪些工程師會被淘汰,哪些會成為下一代的技術領導者。 歷史告訴我們,每一次技術革命都會重新定義職業的本質,而非簡單
Thumbnail
前言:重新定義「被取代」的真正意涵 當我們談論 AI 將在 2030 年「取代」軟體工程師時,這個論述往往過於簡化了一個複雜的轉型過程。真正的問題不是 AI 是否會取代程式設計師,而是哪些工程師會被淘汰,哪些會成為下一代的技術領導者。 歷史告訴我們,每一次技術革命都會重新定義職業的本質,而非簡單
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
網路上提到自學程式的文章,都會說自學程式非常地辛苦,而且要很自律,決心夠強;而當自己踏上這條路後,才發現何止是辛苦,根本是佈滿荊棘,常常寸步難行,且被刺地遍體鱗傷(喂~是不是有點太浮誇了),但在每個寫出程式豁然開朗的當下,卻又成就感滿滿,所以想藉著寫部落格紀錄一下自己的學習過程!
Thumbnail
網路上提到自學程式的文章,都會說自學程式非常地辛苦,而且要很自律,決心夠強;而當自己踏上這條路後,才發現何止是辛苦,根本是佈滿荊棘,常常寸步難行,且被刺地遍體鱗傷(喂~是不是有點太浮誇了),但在每個寫出程式豁然開朗的當下,卻又成就感滿滿,所以想藉著寫部落格紀錄一下自己的學習過程!
Thumbnail
曾經因為工作上的衝突,體驗到被甲方的語言攻擊與情緒勒索的不適,引發我思索如何改變現況。朋友的建議點燃了我嘗試轉職的火苗:成為具有專業技能且不受他人左右的自己。由於在資訊服務產業從事PM工作,自然聯想到專注於程式碼的工程師,他們在工作上相對具有專業技能,更不受甲方干擾。
Thumbnail
曾經因為工作上的衝突,體驗到被甲方的語言攻擊與情緒勒索的不適,引發我思索如何改變現況。朋友的建議點燃了我嘗試轉職的火苗:成為具有專業技能且不受他人左右的自己。由於在資訊服務產業從事PM工作,自然聯想到專注於程式碼的工程師,他們在工作上相對具有專業技能,更不受甲方干擾。
Thumbnail
要轉換到另一個領域,需要投入相當的時間,一旦準備的時間拉得越長,轉職要面臨的壓力也就可能隨之增加。 這次就將 Podcast 先前邀請到多位軟體工程師分享的轉職經驗彙整成整理包,讓大家可以更快找到自己需要的轉職資訊,把更多時間留在提升專業技能上!
Thumbnail
要轉換到另一個領域,需要投入相當的時間,一旦準備的時間拉得越長,轉職要面臨的壓力也就可能隨之增加。 這次就將 Podcast 先前邀請到多位軟體工程師分享的轉職經驗彙整成整理包,讓大家可以更快找到自己需要的轉職資訊,把更多時間留在提升專業技能上!
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News