get_Range 워크시트가 예외를 발생
C#을 사용하여 Excel 워크시트를 조작하고 있습니다.다음 두 코드는 동일하게 작동해야 하지만 하나는 작동하고 다른 하나는 예외를 던집니다.왜 그럴까요?
효과:
oRange = (Excel.Range)oSheet.get_Range("A1","F1");
oRange.EntireColumn.AutoFit();
이 경우 예외가 발생합니다.
oRange = (Excel.Range)oSheet.get_Range(oSheet.Cells[1, 1],oSheet.Cells[4,4]);
oRange.EntireColumn.AutoFit();
예외:
RuntimeBinderException occurred. "object" does not contain a definition for 'get_Range'
그oSheet
는 다음과 같이 인스턴스화됩니다.
Excel.Worksheet oSheet = new Excel.Worksheet();
둘 다 다르게 인스턴스화해야 하나요?
예외는 다음에서 던져진 것처럼 보입니다.oSheet.Cells[1, 1]
그리고.oSheet.Cells[4, 4]
의 주장으로 사용되는.get_range
.
다음을 적용하면 예외가 발생하지 않습니다.
Excel.Range c1 = oSheet.Cells[1, 1];
Excel.Range c2 = oSheet.Cells[4, 4];
oRange = (Excel.Range)oSheet.get_Range(c1, c2);
oRange.EntireColumn.AutoFit();
그래서, 그것은 아마도 그것과 관련이 있을 것입니다.oSheet.get_Range
기능성개체를 인수로 수신하므로 다음을 호출하려고 할 수 있습니다.get_Range
내부 셀을 수신할 인수에 대한 방법 및 업캐스트Range
컴파일러에서 수행한 개체가 메서드 호출을 숨길 수 있습니다.
행/열별 셀 정의가 필요한 경우 위의 방법을 사용합니다.
대신 워크시트 범위 속성을 사용합니다.예를 들어, 대신에
oRange = (Excel.Range)oSheet.get_Range(oSheet.Cells[1, 1],oSheet.Cells[4,4]);
사용하다
oRange = (Excel.Range)oSheet.Range[oSheet.Cells[1, 1],oSheet.Cells[4,4]];
.NET 2를 활용했을 때 get_Range() 메서드를 광범위하게 사용하고 있었습니다..NET 4 Client Profile로 변경했을 때 이 예외도 발생했습니다.get_Range() 참조를 Range 속성으로 대체하여 이 문제를 해결했습니다.
이 문제가 있는 모든 사용자는 새 변수를 만드는 것보다 명시적 변환을 사용하는 것이 훨씬 좋습니다.
oRange = (Excel.Range)oSheet.get_Range((Excel.Range)oSheet.Cells[1, 1], (Excel.Range)oSheet.Cells[4,4]);
에서 VSC# 프로젝트를 업그레이드했습니다.Net Framework 3.5 - 4.5.5.업그레이드가 성공적으로 완료되면 Excel 보고서를 생성할 때 이 "object"에 'get_Range' 예외에 대한 정의가 포함되지 않습니다.
제가 한 것은 아래 코드를 사용하는 대신입니다.
range = xlSheet.get_Range(Cells[xlRow, xlCol], Cells[xlRow, xlCol]);
다시 썼습니다.
range = xlSheet.Range[Cells[xlRow, xlCol], xlSheet.Cells[xlRow, xlCol]];
그리고 그것은 성공하였다.
.NET 5에서 위의 답변을 시도해 보았지만 더 이상 작동하지 않습니다.대신, 다음 코드가 작동합니다.
Excel.Range c1 = (Excel.Range)excelSheet.Cells[1, 1];
Excel.Range c2 = (Excel.Range)excelSheet.Cells[4, 4];
Excel.Range oRange = oSheet.get_Range(c1, c2);
언급URL : https://stackoverflow.com/questions/6546785/worksheet-get-range-throws-exception
'programing' 카테고리의 다른 글
Gem 파일이 설치된 위치를 찾는 방법 (0) | 2023.06.04 |
---|---|
외부 JAR에서 "1번 오류와 함께 Dalvik 형식으로 변환하지 못했습니다. (0) | 2023.06.04 |
git bloss'는 무엇을 합니까? (0) | 2023.05.25 |
Cassandra, Membase, Hadoop, MongoDB, RDBMS 등 중에서 선택하는 방법은 무엇입니까? (0) | 2023.05.25 |
최상의 서버측 .NET PDF 편집 라이브러리 (0) | 2023.05.25 |