2012-11-16 2 views
2

Excel Interop으로 작업하는 동안 문제가 발생합니다. 저장하기 전에 다음 코드로 워크 시트 열을 자동 맞춤합니다.Microsoft Excel Interop 시트 지원 여부 확인

Excel.Worksheet curSheet = (Excel.Worksheet)wsEnumerator.Current; 
curSheet.UsedRange.EntireColumn.AutoFit(); 

그리고 제대로 작동합니다. 그런 다음 특정 Excel 시트에 문제가 발생했습니다. 내가 자동 맞춤이라면 AutoFit method of Range class failed라고 말합니다. 문제의 원인이

엑셀 시트는 엑셀 시트 지원 자동 맞춤 아닌지를 확인 할 수있는 방법이 있는지, here

지금 내가 알고 싶은 것은 가능합니다. 예 :

if(sheet.CanAutoFit()) 
    curSheet.UsedRange.EntireColumn.AutoFit(); 

도움이 되셨습니까? 더 sheet.CanAutoFit()이 없다면

+1

http://msdn.microsoft.com/ko-kr/library/microsoft.office.interop.excel.range.autofit(v=office.11).aspx#Y0에 따르면 오류가 아니라면 오류가 발생합니다. 행 또는 행 범위, 또는 열 또는 열 범위. 이 문제를 일으키는 "특정 Excel 시트"에 대해 다른 점이 있습니까? – SpaceBison

+0

실제로이 Excel 문서를 Microsoft Excel에서 열면 입력 할 수있는 셀을 자동 맞춤 할 수 없습니다. 그것의 고정 된 유형의 엑셀 시트. –

+1

시트가 보호되어 있는지 확인 하시겠습니까? 보호 된 시트의 열의 크기는 조정할 수 없습니다. 일단 예제 Excel 시트를 보호하지 않으면 모든 열을 자동 맞춤 설정할 수있었습니다. –

답변

1

당신은 항상이 작업을 수행 할 수 있습니다

try { 
    curSheet.UsedRange.EntireColumn.AutoFit(); 
} catch (TheSpecificExcelException exc) 
{ ... } 
+2

하지만 그렇게하는 것이 좋지 않을 것이다. 이를위한 적절한 해결책이 있어야합니다. 또한 Mircosoft Excel이 자동 맞춤 기능을 사용할 수 없다는 것을 알고 있다면이를 수행 할 수있는 방법이 있어야합니다. –

+1

세계가 완벽하지 않습니다. –

1

문제는 시트 보호 하였다. 그리고 그것을 처리하기 위해 나는 trycatch 예외 처리를 사용했습니다. 그래서 그것은 해결되었습니다.