Interop.Excel (v15)을 활용하여 고객 데이터의 일부 통합 문서를 열고 구문 분석 한 다음 일부 정보를 출력하는 C# 응용 프로그램이 있습니다. 내가 가지고있는 문제는 일부 통합 문서 셀에 # N/A 값이 있다는 것입니다. Excel에서 말하면 어떤 유형의 오류가 있음을 나타내는 CVErr입니다. 고객 데이터의 맥락에서 그들은 N/A를 사용하여 Not Applicable을 나타냅니다. 근본적인 공식 문제는 없으며 단순히 사용하는 가치입니다. 내가 검사 시도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 값을 나는 #의 N/A 건너 때마다 얻을 각 셀은 개별적으로 실행되지만 응용 프로그램이 사용 불가능한 위치로 이동하는 속도가 느려졌습니다 (대부분의 통합 문서에는 10,000 개의 행 X 38 개 열이 있음). Text, Value, & Value2로 변환하려고 시도했습니다. 비교를 실행하고 나중에 다른 통합 문서에 값을 출력 할 수 있도록 해당 형식의 # N/A 값을 읽을 수 있어야합니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
대신 @ verabtim을 리터럴로 사용하려면 문자열로 변환해야합니다. –
@SivaprasathV @ 어디에서 사용할 수 있습니까? 값은 COM 행 개체에서 들어옵니다.이 형식으로도 -214682646 값이 있습니다. – slashNburn