2010-04-13 5 views
1

2003 년과 2007 년 Excel 버전이 모두 내 컴퓨터에 설치되어 있습니다. 현재 소스 코드는 Office111 (2003) interop 어셈블리 인 Microsoft.Office.Interop.Excel.dll을 사용하여 Excel 템플릿을 만듭니다.2003 년과 2007 년 모두 설치된 컴퓨터의 C#에서 Excel 2003 템플릿 만들기

템플릿을 만들어 Excel 2007에서 열면 완벽하게 열립니다. 2003 년에 열 때 같은 템플릿이 "파일 형식이 유효하지 않습니다"라는 메시지가 나타납니다.

_excel = new Excel.Application(); 
_workbooks = _excel.Workbooks; 
_excel.Visible = false; 

_excel.DisplayAlerts = false; 

// create and add a workbook with 1 worksheet named "Sheet1" 
_workbook = _workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); 

_sheet = (Excel.Worksheet)_workbook.ActiveSheet; 

답변

1

두 버전의 interop 어셈블리가 설치되어있는 경우 Office11 호출을 Office12 어셈블리로 리디렉션하는 바인딩 리디렉션 어셈블리가있을 수 있습니다. here에서

는 :

설치하고 (PIA를위한 재배포 가능 패키지 를 설치하는 사무소 또는 에 의해 중) 전역 어셈블리 캐시에 사무실 PIA를 등록의는 어셈블리를 재 바인딩 또한 전역 어셈블리 캐시 에만 설치됩니다. 이러한 어셈블리는 올바른 버전의 기본 interop 어셈블리가 런타임에로드되는지 확인하는 데 도움이됩니다. 는 2007 마이크로 소프트 오피스 주 interop 어셈블리를 참조하는 솔루션이 마이크로 소프트 오피스 동일한 기본 interop 어셈블리의 2010 버전이 컴퓨터에서 실행될 때 예를 들어, 어셈블리를 재 바인딩은 .NET 프레임 워크 지시 런타임에 Microsoft Office 2010 년 버전의 기본 interop 어셈블리를로드합니다. 자세한 내용은 어셈블리 바인딩 리디렉션을 참조하십시오.

이렇게하면 코드가 Excel 2007을 호출하여 Excel 2003에서 변환 플러그 인없이 읽을 수없는 Excel 2007 형식 파일을 만드는 중입니다.

관련 문제