【发布时间】:2020-10-23 15:38:29
【问题描述】:
我有一个包含多个工作表的 excel 文件 myexcel.xlsx。所有工作表在第一行中具有相同的列名。一列称为 ID,另一列称为 Total。我正在浏览每个工作表中的每一行,然后我想知道如果列 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;
}
【问题讨论】:
-
您需要澄清“然后忽略所有这些具有相同 ID 的行”的意思是指您只想在每个工作表中使用该 ID 一次吗?你说忽略,但你说还要跟踪工作表中相同 ID 的总数。
-
我会考虑把它分成两个问题。一个是创建某种可以保存这些数据的类,并编写代码来读取电子表格中的所有数据。也许你最终得到了一些对象的两个列表。然后分别弄清楚如何对数据进行操作。你正在做的事情会奏效,但更难,因为你要同时解决两件事。