Проблема с созданием Excel файла в C#

500
12 февраля 2020, 21:00

Проблема заключается в следующем: Есть код (ниже показан), который выгружает данные из DataGridView2 в Excel, но в момент создания Excel файла (xlexcel = new Microsoft.Office.Interop.Excel.Application();) он крашеться и выдаёт ошибку (под кодом)

Код:

private void copyAlltoClipboard()
    {
        dataGridView2.SelectAll();
        DataObject dataObj = dataGridView2.GetClipboardContent();
        if (dataObj != null)
            Clipboard.SetDataObject(dataObj);
    }
        void Button9Click(object sender, EventArgs e)
        {
        copyAlltoClipboard();
        Microsoft.Office.Interop.Excel.Application xlexcel;
        Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
        Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;
        xlexcel = new Microsoft.Office.Interop.Excel.Application();
        xlexcel.Visible = true;
        xlWorkBook = xlexcel.Workbooks.Add(misValue);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
        Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
        CR.Select();
        xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
        }   
    }

Ошибка:

System.InvalidCastException: Невозможно привести COM-объект типа "Microsoft.Office.Interop.Excel.ApplicationClass" к интерфейсному типу "Microsoft.Office.Interop.Excel._Application". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-компонента для интерфейса с IID "{000208D5-0000-0000-C000-000000000046}" возвратил следующую ошибку: Интерфейс не зарегистрирован (Исключение из HRESULT: 0x80040155).

Проблема скорее всего в следующем: Раньше на пк стоял Office2007 (был удалён во время разработки проекта) и был установлен Office2016(Коробочная лицензия).

До этого вылетала ошибка, что использую office 12.0.0 версии, а библиотека работает на 15.0.0 версии (я это фиксил путём переименования папки с 12.0.0 на 15.0.0)

Задача в следующем: как это всё по фиксить без переустановки Window's, office?

Answer 1

Добавь reference на офис правильной версии в свойства проекта.

Переименование папок - это ерунда.

READ ALSO
Triangle.NET не триангулирет область с отверстием

Triangle.NET не триангулирет область с отверстием

При триангуляции поверхности с данными координатами дырки TriangleNet некоректно триангулирует область

315
Неправильно работают рикошеты

Неправильно работают рикошеты

Rigidbody2D стоит и у Bullet, и у StoneКоллайдеры тоже

372
Поиск кириллицы в MySQL (Eloquent)

Поиск кириллицы в MySQL (Eloquent)

Кириллица в базе данных хранится таким образом (пример): {"ru":"\u0418\u0441\u0442\u0440\u0430"}

317
Триггер, для ограничение ввода данных. SQL

Триггер, для ограничение ввода данных. SQL

не могу вообще понять как сделать данное условие

271