sza*_*ble 5 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;
Run Code Online (Sandbox Code Playgroud)
未处理的异常:System.Runtime.InteropServices.COMException:来自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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8838 次 |
| 最近记录: |