[英]Loop on excel rows in different Excel worksheets C#
我有一個包含多個工作表的 excel 文件 myexcel.xlsx。 所有工作表的第一行都具有相同的列名。 一列稱為 ID,另一列稱為總計。 我正在查看每個工作表中的每一行,然后我想知道如何檢查列 ID 是否存在於同一工作表或其他工作表的任何其他行中。 如果在其他地方找不到該 ID,則總數將僅等於該行的 Total 列,但如果同一 ID 存在於同一/其他工作表的另一行中,則我想添加另一行的 Total 列然后忽略 for 循環中相同 ID 的所有這些行,以便它們不會重復。
Excel.Application myapp = new Excel.Application();
Excel.Workbook myworkbook = myapp(@"myexcel.xlsx");
for (int i = 1; i <= myworkbook.Worksheets.Count; i++)
{
Excel._Worksheet myworksheet = myworkbook.Worksheets[i];
Excel.Range myrange = myworksheet.UsedRange;
int myrowCount = myrange.Rows.Count;
}
我不知道使用 Excel 工作表的正確語法,所以我會給你一個基本的例子來說明我認為你在問什么。 您必須調整代碼以使其正常工作,但是如果您想聚合(獲取總和)具有相同“ID”的所有行中的“總計”,您應該能夠執行以下操作:
var totalsDictionary = new Dictionary<int, int>();
for (var ws = 0; ws < worksheets.Count; ws++)
{
var worksheet = worksheets[ws];
for (var row = 0; row < worksheet.Rows.Count; row++)
{
var id = worksheet.Rows[row]["ID"];
var total = worksheet.Rows[row]["Total"];
if (totalsDictionary.ContainsKey(id))
{
totalsDictionary[id] += total;
}
else
{
totalsDictionary.Add(id, total);
}
}
}
// totalsDictionary now contains the sum of Totals for each ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.