Tôi đã gặp sự cố khi phát triển trên MS Visual Web Developer 2008 Express Ed. Phát triển ASP.NET C# trên Windows7 64 bit OS.Microsoft.Office.Interop.Excel không hoạt động trên 64 bit
Tôi đang cố gắng để mở một tài liệu Excel, nhưng nó mang lại cho tôi Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
tôi đã cấu hình xây dựng cho tất cả các bộ vi xử lý (CPU Bất kỳ, x64, x86) nhưng nó không hoạt động. Tôi đã tìm kiếm câu trả lời trên internet nhưng không thể tìm ra cách xử lý nó.
Điều kỳ lạ là cùng một mã hoạt động trên cùng một hệ thống khi tôi phát triển trên Microsoft Visual C# 2010 Express! làm thế nào mà? nó không phải là cùng một dll làm việc phía sau?
Tôi có cần thay đổi tệp COM dll đó để nó hoạt động trên hệ thống x64 không?
Hãy giúp tôi, tôi có thể làm gì?
Mã của tôi là:
using Excel = Microsoft.Office.Interop.Excel;
xlApp = new Excel.Application();
__Log("Openning " + excelFileName);
xlWorkBook = xlApp.Workbooks.Open(excelFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
Tôi không hoàn toàn chắc chắn điều này willl giải quyết vấn đề của bạn, nhưng nếu bạn có một 32-bit COM DLL, bạn có thể cần phải sử dụng một build x86 của dự án của bạn ngay cả khi bạn đang chạy trên Windows 64 bit. – Andrew
Tôi nghĩ bạn đã có ý tưởng đúng @Andrew. Nếu nó là 32bit Excel, 64bit .net sẽ không muốn làm việc với nó. Xây dựng nó như x86 và nó sẽ hoạt động. –
Đã thử điều đó .. nhưng điều tương tự cũng xảy ra, tôi không hiểu tại sao vấn đề này không xảy ra trong Visual C# và chỉ trong nhà phát triển Web – Bush