2013-06-24 1 views
0

Microsoft Office Excel로 COM 자동화를 시도하고 가능한 한 많은 시스템과 호환되어야합니다. 이 프로그램은 텍스트 파일을 가져 와서 미리 만든 Excel 양식 (.xlsx) 대부분을 채우는 데 사용하는 상대적으로 기본적인 프로그램입니다. 사용자는이 파일을 사용하여 로그 오프하고 저장할 수 있습니다.Office XP Interop을 사용하여 .xlsx 열기

Visual Studio 2008 만 있으므로 "Interop Interop"옵션 대신 후기 바인딩을 사용하고 있습니다. C#으로 프로그래밍되고 .Net Framework 3.5를 사용합니다.

테스트 시스템은 Office XP 호환 팩 및 .Net 3.5가 설치된 Office XP (지원되는 제품 중 가장 오래된 것)로 Windows XP SP3을 실행하고 있습니다. 파일 브라우저에서 .xlsx 파일을 정상적으로 열 수 있지만 내 프로그램을 통해 열려고하면 "파일이 인식 할 수없는 형식입니다."등의 오류 메시지가 나타납니다.

문제는 통합 문서를 열기에있다, 여기에 내가 그것에 대해 가지고있는 코드입니다 : 내가 지금까지 엑셀 2010 년과 2007 년에 검사를하지

//Add a new workbook. 
Parameters = new Object[15]; 
Parameters[0] = openFileDialog1.FileName; 

for (int i = 1; i < 15; i++) { 
    if(i == 2) 
     Parameters[2] = true; //make file read only 
    else 
     Parameters[i] = Missing.Value; //default on the rest 
} 

objBook_Late = objBooks_Late.GetType().InvokeMember("Open", 
    BindingFlags.InvokeMethod, null, objBooks_Late, Parameters); 

, 그들은 둘 다 괜찮 았는데, 그래서 나는 이유를 완전히 확실하지 않다 WinXP에서 오류가 발생합니다. 내가 할 수있는 경우 오래된 .xls 파일을 사용 하겠지만 불행히도 그것은 나에게 달려 있지 않습니다.

도움을 주시면 감사하겠습니다.

+0

이렇게하면 Microsoft.Office.Interop.Excel을 사용하고 개인 Microsoft.Office.Interop.Excel.Application을 _excelApp = new Microsoft.Office.Interop.Excel.Application(); 개인 Microsoft.Office.Interop.Excel.Workbook _excelWorkbook = null; 개인 Microsoft.Office.Interop.Excel.Sheets _workSheets = null; 개인 Microsoft.Office.Interop.Excel.Worksheet _work = null; 개인 Microsoft.Office.Interop.Excel.Range _range = null; 개인 Microsoft.Office.Interop.Excel.Range _notesLineRange = null; '모든 곳에서. 더 자세한 내용을 포함시킬 수 있습니까? –

+0

Meredith에게 감사의 말을 전합니다! 예, 모든 관련 객체를 인스턴스화 할뿐만 아니라 포함 시켰는지 확인했습니다. 원하는 경우 전체 코드를 게시 하겠지만 후기 바인딩을 사용하는 것으로 생각하면 조금 길어집니다. 그러나 나는 그것에 대한 해답을 찾았으며 프로그램과 관련이 없다 (당황스럽게도 충분히). 그것이 무엇인지에 대한 아래의 답을보십시오. – Arian

답변

0

좋아, 좀 더 연구를 마친 후에 마침내 해결했습니다. 업데이트와 마찬가지로이 오류는 Excel에서 파일 >> 열기를 수행 한 경우에도 발생했기 때문에 오류를 일으키는 프로그램이 아닙니다.

Office 2007 설치시 내 테스트 베드에 문제가있는 것으로 나타났습니다. 더 이상 설치되지 않았지만 2007 년 xlsx 파일을 열려고했습니다. 나는 제어판 >> 폴더 옵션 >> 파일 형식에 들어가서 .xlsx를 Microsoft 오픈 XML 변환기로 변경했다.

관련 문제