簡體   English   中英

C#VSTO-使用String.Empty檢查單元格是否為空

[英]C# VSTO - Checking if a cell is empty using String.Empty

我繼承了一個基於C#的VSTO項目,該項目從電子表格中讀取大量數據,然后進行處理。 我在代碼中的很多地方看到以下內容:

(((Excel.Range)sheet.Cells[rowIndex, columnIndex]).Value2 != null 
    && ((Excel.Range)sheet.Cells[rowIndex, columnIndex]).Value2.ToString().Length > 0)

此代碼段在復制出可以的值之前檢查單元格是否包含值。 但是不會檢查String.Empty在一行而不是在兩行中執行相同操作,還是在某些情況下即使單元格中有值也會失敗嗎?

沒關系,我知道了。 檢查:

(((Excel.Range)sheet.Cells[rowIndex, columnIndex]).Value2.ToString() != String.Empty

如果我正在執行.ToString()的單元.ToString()好為空,則失敗。 如果Excel認為該單元格的格式不是字符串,則檢查.value2 != String.Empty也會失敗。

我建議從中斷屬性和方法調用鏈開始,並在單獨的代碼行中聲明它們中的每一個。 因此,您將能夠確定問題的原因(如果有)。 另外,您將能夠立即釋放基礎COM對象。 使用完后,使用System.Runtime.InteropServices.Marshal.ReleaseComObject釋放Outlook對象。 在Visual Basic中將變量設置為Nothing(在C#中為null)以釋放對該對象的引用。 您可以在MSDN中的“ 系統釋放對象”文章中了解有關此內容的更多信息。 它與Outlook相關,但是相同的規則可以應用於任何Office應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM