Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > работа с Excel в 64-битке


Автор: 17dufa 20.10.2010, 14:20
Добрый день.
Имею код:
Код

using Microsoft.Office.Interop.Excel;
....
            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
            if (app == null)
            {
                MessageBox.Show("Невозможно запустить Excel!");

                return;
            }
            
            var workbooks = app.Workbooks;
            var workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
            var sheets = workbook.Worksheets;
            var worksheet = (Worksheet)sheets.get_Item(1);
            worksheet.Cells.Font.Size = 11;
....

в 32-битке все работает, в 64 - на последней строке получаю эксепшен:
Невозможно привести COM-объект типа "System.__ComObject" к интерфейсному типу "Microsoft.Office.Interop.Excel.Range". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-компонента для интерфейса с IID "{00020846-0000-0000-C000-000000000046}" возвратил следующую ошибку: Интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)).

 smile 
уже не знаю куда копать.

Автор: jonie 27.10.2010, 13:10
17dufa, мало информации: какой у вас эксель (32\64), какое у вас приложение (32\64\any cpu) ?
По поводу битности приложения  (в настройках задается сборки) поиграйтесь...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)