मुझे एक System.com_object त्रुटि मिल रही है यदि मैं एक्सेल सेल को खाली करने की कोशिश कर रहा हूं जो खाली है। मेरा कोड है:C# .net में EXCEL इंटरऑप एपीआई का उपयोग करके खाली सेल मान को कैसे पढ़ा जाए?
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;
}
इस एक्सेल फ़ाइल में 10 कॉलम हैं और मुझे लगता है कि मैं एक वैध सेल पढ़ रहा हूं। त्रुटि ** है "
{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference
at CallSite.Target(Closure , CallSite , Object)
at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
" ** मैं अपने कॉम के बाद से किसी भी सुराग नहीं है। सहायता बहुत सराहना की है।
आप तारीख को इस स्ट्रिंग परिवर्तित कर सकते है, क्योंकि यह असफल नहीं होगा एक और चेक
जोड़ें या स्ट्रिंग के लिए कनवर्ट निम्नलिखित कोड का उपयोग कर,: mWSheet1.Cells [ जेड, वाई + 3]। वैल्यू 2.ToString(); और कोशिश करने के बजाय ?! – Sylca
यदि मैं रिक्त कक्षों के साथ कुछ भी करता हूं तो यह ऊपर उल्लिखित त्रुटि को फेंकता है। – Sulekha