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

我有一个巨大的Excel文件,并希望find列“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; 

未处理的exception:System.Runtime.InteropServices.COMException:从HRESULTexception:0x800A03EC

有时候,excel中的列顺序会发生变化,并且想要通过din来处理,而不是通过定义列M(例如Size)来处理。

这是你正在尝试? ( 在VS 2010 + Excel 2010中试用和testing

 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()); }