如果我尝试读取空的EXCEL单元格,则会收到System.com_object错误.我的代码是:
- public static List<OrderPC> getFilters(string fileCheckout)
- {
- List<OrderPC> orderPCs = new List<OrderPC>();
- XLDoc sldoc = new XLDoc();
- string localPath = @"C:\Temp\PCs.xlsx";
- Microsoft.Office.Interop.Excel.Application oXL=null;
- Microsoft.Office.Interop.Excel.Workbook mWorkBook=null;
- Microsoft.Office.Interop.Excel.Worksheet mWSheet1=null;
- Microsoft.Office.Interop.Excel.Range xlRange=null;
- try
- {
- oXL = new Microsoft.Office.Interop.Excel.Application();
- mWorkBook = oXL.Workbooks.Open(localPath);
- mWSheet1 = mWorkBook.Sheets[1];
- xlRange = mWSheet1.UsedRange;
- foreach (Microsoft.Office.Interop.Excel.Hyperlink hl in xlRange.Hyperlinks)
- {
- int y = hl.Range.Column;
- int z = hl.Range.Row;
- string vFilter = mWSheet1.Cells[z,y + 1].Value2.Trim();
- if (vFilter.CompareTo("Weekly") == 0)
- {
- String baseUri = "http://xxx.yyy.net?";
- int followUpIndex = baseUri.Length;
- OrderPC orderPc = new OrderPC();
- orderPc.ProductClass = hl.TextToDisplay.Trim();
- orderPc.HyperLink = hl.Address.Trim().Substring(followUpIndex);
- orderPc.SpecType = mWSheet1.Cells[z,y - 1].Value2.Trim();
- if (mWSheet1.Rows[z].Cells[y + 3] != null || mWSheet1.Rows[z].Cells[y + 3].Value2 != string.Empty)
- {
- orderPc.ManufactureDate = mWSheet1.Cells[z,y + 3].Value2.ToString(); //Here is the error**
- }
- //Console.WriteLine(orderPc.ProductClass+"----"+orderPc.HyperLink);
- orderPCs.Add(orderPc);
- }
- }
- }
- catch (Exception ex)
- {
- }
- finally
- {
- GC.Collect();
- GC.WaitForPendingFinalizers();
- Marshal.FinalReleaseComObject(xlRange);
- Marshal.FinalReleaseComObject(mWSheet1);
- mWorkBook.Close(Type.Missing,Type.Missing,Type.Missing);
- Marshal.FinalReleaseComObject(mWorkBook);
- oXL.Quit();
- Marshal.FinalReleaseComObject(oXL);
- }
- return orderPCs;
- }
这个excel文件有10列,我想我正在读一个有效的单元格.错误是**“
{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:无法对空引用执行运行时绑定
在CallSite.Target(Closure,CallSite,Object)
在System.Dynamic.UpdateDelegates.UpdateAndExecute1 [T0,TRet](CallSite站点,T0 arg0)
“**我的COM没有任何线索.非常感谢帮助.