我目前正在做這得到了單元格的值:如何按行索引和列索引
string cellValue = sheet.get_Range("A12", _missing).Value2.ToString();
這一工程,但我真的需要通過行和列的索引來選擇單元格。
我得到一個空的異常當我嘗試
string cellValue = ((Range)sheet.Cells[row, column]).Value2.ToString();
什麼想法?
我目前正在做這得到了單元格的值:如何按行索引和列索引
string cellValue = sheet.get_Range("A12", _missing).Value2.ToString();
這一工程,但我真的需要通過行和列的索引來選擇單元格。
我得到一個空的異常當我嘗試
string cellValue = ((Range)sheet.Cells[row, column]).Value2.ToString();
什麼想法?
ArgumentNullException
在哪裏出現?嘗試分離出這樣的代碼,並逐步完成它:
object rangeObject = sheet.Cells[row, column];
Range range = (Range)rangeObject;
object rangeValue = range.Value2;
string cellValue = rangeValue.ToString();
這將向您顯示null對象的位置。
NullReferenceException發生在 string cellValue = rangeValue.ToString(); 因爲range.Value2爲空。我知道我的表單很好,但我認爲sheet.Cells [row,column]是真正的罪魁禍首。 – CurlyFro 2010-02-19 21:40:08
那麼我認爲,null'range.Value2'表示該單元格沒有值。如果你看看Excel中的單元格,它是空的嗎? – 2010-02-19 21:46:00
另外,Excel interop使用基於1的索引。問題可能是您正在使用引用空單元格的基於零的索引。如果是這樣的話,那麼你所需要做的就是使用'row + 1'和'column + 1'來獲得正確的單元格。 – 2010-02-19 21:50:02
我有同樣的問題。當我讀取的單元格爲空時,會發生nullref。
string foo = (((Range) ActiveWorksheet.Cells[row, column]).Value2 != null
? ((Range) ActiveWorksheet.Cells[row, column]).Value2.ToString()
: "Coalesce some false string here...");
請注意,您必須前檢查null 您嘗試轉換或鑄造的價值。
[我如何使用VSTO/C#中的行和列號獲取Excel範圍?](http://stackoverflow.com/questions/2333202/how-do-i-get-an-excel-使用行和列的數字在-vsto-c) – nawfal 2014-01-05 06:37:33