我有一個C#應用程序,它利用Interop.Excel(v15)打開一些客戶數據的工作簿,通過它們解析並輸出一些信息。我遇到的問題是某些工作簿單元格的值爲#N/A;在Excel中講的是CVErr,指示存在某種類型的錯誤。在我們客戶數據的背景下,他們使用#N/A來表示不適用 - 沒有基本的公式問題,這只是他們使用的價值。C#Interop.Excel'#N/A'單元格值轉換爲-2146826246
private void traverseRows(Excel._Worksheet worksheet)
{
//Get the used Range
Excel.Range usedRange = worksheet.UsedRange;
//Last Row/Column
int lastUsedRow = usedRange.Row + usedRange.Rows.Count - 1;
int lastUsedColumn = usedRange.Column + usedRange.Rows.Columns.Count;
foreach (Excel.Range row in usedRange.Rows)
{
List<String> rowData = rangeToList(row);
}
}
List<string> rangeToList(Microsoft.Office.Interop.Excel.Range inputRng)
{
object[,] cellValues = (object[,])inputRng.Value2;
List<string> lst = cellValues.Cast<object>().ToList().ConvertAll(x => Convert.ToString(x));
return lst;
}
我試圖檢查:
當我使用下面的函數來遍歷工作表行,每次我遇到一個#N/A時得到的-2146826246 int值每個單元格都是獨立的,但是會將應用程序放慢到無法使用的地步(大多數工作簿有10,000行X 38列)。我試圖轉換爲文本,值,& Value2無濟於事。我需要能夠以真正的形式讀入#N/A值,以便我可以運行比較並稍後將值輸出到其他工作簿。達到此目的的最佳方式是什麼?
而不是轉換爲字符串使用@ verabtim獲取它作爲一個文字。 –
@SivaprasathV我可以在哪裏使用@ verbatim?這些值來自COM Row Object,即使在這種形式下它們的值爲-214682646值 – slashNburn