У одного из моих пользователей возникла проблема при попытке открыть файл Excel через мое приложение C #.
Все работает нормально, когда я запускаю его со своей машины, и это работает для других пользователей. Я не эксперт по взаимодействию в Excel, так что, надеюсь, вы, ребята, сможете мне помочь.
Вот как это настроено:
Я добавил ссылку на свое приложение в Microsoft.Office.Interop.Excel.dll, версия 10.0.4504.0 (я полагаю, это Excel 2002). На моей машине я установил Excel 2007.
В своем коде я пытаюсь открыть лист так:
using Microsoft.Office.Interop
...
Microsoft.Office.Interop.Excel.ApplicationClass _excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook excelWorkbook = _excelApp.Workbooks.Open(workbookPath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", false, false, 0, true, false, false);
Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets;
Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelSheets.get_Item(1);
Я зарегистрировал версию пользователя как Excel 9.0 (2000). Ошибка, которую получает пользователь:
Exception='System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
Похоже, книгу невозможно открыть. Файл был подтвержден, чтобы существовать и был просто свободен на ПК пользователя в C :. Я подумал, что с помощью PIA мне не придется беспокоиться о проблемах с версией Excel. Я знаю, что есть другие пользователи, использующие Excel 2000, и он работает на моей машине для разработки.
Есть идеи? Может быть, мои звонки, чтобы открыть файл Excel, должны быть изменены? К сожалению, я не могу воспроизвести это.