簡體   English   中英

在 C# 中使用 interop.excel 檢測空白 Excel 單元格

[英]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 鏈接來驗證這一點!)

請參閱: VBA (Excel) 中 =Empty 和 IsEmpty() 的區別是什么?

暫無
暫無

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

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