我有一張看起來像這樣的Excel工作表。 | A1 | B1 | 「BLANK」| D1 | E1 | F1 | 也就是說只填充第一行,第三列空白。使用interop.Excel在C#中的Excel範圍。範圍都是空的而不是空的?
Excel.Application exApp = OpenExcel();
String mySheet = @"C:\c#\rapport.xlsx";
Excel.Workbook wb = exApp.Workbooks.Open(mySheet);
Excel.Worksheet ws = wb.Sheets[1];
Excel.Range row = ws.Rows[1];
我創建了一個新的範圍僅由
Excel.Range rng = row.SpecialCells(Excel.XlCellType.xlCellTypeConstants);
含第1行中的非空單元格現在:我在C#中以下列方式使用interop.excel解析這個,如果我使用rng.Select
我的工作表中的所有非空單元格都被選中。如果我使用rng.Count
它將返回5,這是我的工作表中非空單元格的數量。但仍然當我使用單元格打印時:
Console.WriteLine(rng[1,i].Value.ToString());
它顯示rng [1,1-2]包含「A1和B1」,這很好。但是 rng [1,3]是空的或空的。 rng [1,4-7]包含D1-F1。
這怎麼可能?
我的主要目標是將所有非空值存儲在字符串數組中。但是我不能選擇正確的值,因爲我的範圍rng都是空的,而非空是一種奇怪的方式。
您需要使用foreach結構迭代rng中的單元格。使用'.Item'方法並不侷限於範圍內的實際單元格 - 它只是相對於範圍的第一個單元格。 – Rory 2015-02-11 09:42:59
謝謝隊友!這解決了它! – kPuck 2015-02-11 10:36:38