Создание шаблона Excel 2003 в C # на компьютере с установленными 2003 и 2007 - PullRequest
1 голос
/ 13 апреля 2010

На моем компьютере установлены версии Excel 2003 и 2007. Текущий исходный код использует Office11 (2003) сборку взаимодействия Microsoft.Office.Interop.Excel.dll для создания шаблона Excel.

Когда я создаю шаблон и открываю в 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 Ответ

1 голос
/ 13 апреля 2010

Если у вас установлены обе версии сборок взаимодействия, возможно, у вас есть сборка перенаправления привязки, которая перенаправляет вызовы Office11 в сборки Office12.

С здесь :

При установке и регистрации Офисные ПИА в глобальной сборке кеш (либо с Office или установка распространяемого пакета для PIA), перенаправление привязки сборки также устанавливаются только в глобальный кеш сборок. Эти сборки помогают убедиться, что правильная версия основного взаимодействия сборки загружаются во время выполнения. За Например, когда решение, которое ссылается на Microsoft Office 2007 основная сборка взаимодействия работает на компьютер с Microsoft Office 2010 версия того же первичного сборка взаимодействия, перенаправление привязки Инструкция по сборке .NET Framework время выполнения для загрузки Microsoft Office Версия первичного взаимодействия 2010 года сборка. Для получения дополнительной информации см. Перенаправление привязки сборки.

Это будет означать, что ваш код вызывает Excel 2007 и, следовательно, создает файл формата Excel 2007, который Excel 2003 не может прочитать (без плагина преобразования).

...