[英]C# Interop.Excel '#N/A' Cell Value converted to -2146826246
[英]Detect blank Excel cell using interop.excel in C#
我正在嘗試從 C# 中的 Excel 文檔中解析文本。 問題是我找不到檢測(和忽略)空白單元格的方法。
我在 Visual Studio 2010 C# 中使用 Microsoft.Office.Interop.Excel。 我不能跳過空白單元格,因此我的程序將相應地存儲空白值。
我已經通過以下方式定義了我的工作表:
Excel.Application exApp = OpenExcel(); String mySheet = @"C:\\sheet.xlsx"; Excel.Workbook wb = exApp.Workbooks.Open(mySheet); Excel.Worksheet ws = wb.Sheets[1];
我通過ws.Cells[row, col]
訪問我的單元格。 我嘗試了不同的方法。 僅舉幾例:
ws.Cells[row, col].Value2 == null
ws.Cells[row, col].Value == null
ws.Cells[row, col].Value == ""
並且還明確地使用 Range 對象Excel.Range rng = ws.Cells[row, col]
使用rng.Value2
根據我使用的方法,我會收到不同的錯誤,來自 HRESULT 的異常:0x800A03EC 就是其中之一。
您可能應該使用 SpecialCells。 例如,下面的代碼將所有空單元格的值設置為零(vba 代碼)。
Range("e11:g16").SpecialCells(xlCellTypeBlanks).Value = 0
或者您可以輕松地循環所有空單元格,如下所示:
For Each item In Range("e11:g16").SpecialCells(xlCellTypeBlanks)
'...
Next
在相同的邏輯中,如果要遍歷所有非空單元格:
For Each item In Range("g10:h11").SpecialCells(xlCellTypeConstants)
'...
Next
嘗試使用 Range 對象的 Text 屬性...
rng.Text == String.Empty
嘗試這個:
if (ws.IsEmpty(Cells[row, col]))
我不記得我是否有正確的語法從 .NET 移植到 Excel,但這是我在 Excel 中的 VB 宏中使用的命令。
你也可以試試 IsNumeric(Cells[row,col].Value)
Excel 單元格的默認值為空(但我找不到 MSN 鏈接來驗證這一點!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.