c# - 如何按单元格值查找列 ID?

标签 c# excel interop find

我有一个巨大的 excel 文件,想找到“ID”列供以后使用。 第 1 行是空的,标题行在第二行。

int ID_Number = ((Range)sheet.get_Range("A2", sheet.UsedRange.Columns.Count).Find("ID Number", Missing.Value, XlFindLookIn.xlValues, XlLookAt.xlPart, XlSearchOrder.xlByColumns, XlSearchDirection.xlNext, true, Missing.Value, Missing.Value) ).Column;
int Size = ((Range)sheet.get_Range("A2", sheet.UsedRange.Columns.Count).Find("Size", Missing.Value, XlFindLookIn.xlValues, XlLookAt.xlPart, XlSearchOrder.xlByColumns, XlSearchDirection.xlNext, true, Missing.Value, Missing.Value) ).Column;

Unhandled Exception: System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800A03EC

有时 excel 中的列顺序会发生变化,并且希望以动态方式处理它,而不是通过为大小定义 M 列。

最佳答案

这是您正在尝试的吗? (已在 VS 2010 + Excel 2010 中试用和测试)

object misValue = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Excel.Range xlRange = xlWorkSheet.get_Range("A2", "A2");

Microsoft.Office.Interop.Excel.Range xlFound = xlRange.EntireRow.Find("ID Number",
misValue, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,
Excel.XlSearchOrder.xlByColumns, Excel.XlSearchDirection.xlNext, 
true, misValue, misValue);

//~~> Check if a range was returned
if (!(xlFound == null))
{
    int ID_Number = xlFound.Column;
    MessageBox.Show(ID_Number.ToString());
}

关于c# - 如何按单元格值查找列 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19973982/

相关文章:

uikit - 如何找到 SwiftUI UIViewRepresentable 的框架

excel - 单元格组上的 SumProduct(不连续)

c# - 在 Web 浏览器控件中控制 Excel

c# - 使用 Dictionary<string, object> 作为 Dictionary<string, Dictionary<string, string>>

c# - 数据库未显示在 Visual Studio 中

vba - Dictionary.Exists 为变量和常量键返回不同的值

html - 如何将 HTML 中的格式转换为 Excel

winapi - Rust WINAPI输出HMODULE值

c# - 删除货币中的小数

C# - 进程没有终止