私はInterop.Excel(v15)を活用して顧客データのワークブックを開き、解析して情報を出力するC#アプリケーションを用意しました。私が持っている問題は、ワークブックセルのいくつかが#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;
}
:
私はワークシートの行を横断するには、以下の機能を使用する場合、私は-2146826246ののInt値私は#1 N/Aに遭遇するたびに取得します個々のセルは個別に実行されていましたが、アプリケーションが使用できなくなった場所(ほとんどのワークブックには10,000行×38列)のアプリケーションが遅くなりました。私はText、Value、& Value2に変換しようとしたが役に立たなかった。私は比較を実行し、後で値を別のワークブックに出力できるように、実際のフォームで#N/Aの値を読むことができる必要があります。これを達成する最良の方法は何ですか?
文字列に変換する代わりに、@ verabtimをリテラルとして使用するために使用します。 –
@SivaprasathV @ verbatimはどこで使用できますか?値はCOM行オブジェクトから来ています。この形式であっても、-214682646の値は – slashNburn