C# ошибки при работе с xlsx файлами

927
13 октября 2017, 13:06

Имеется код

private void buttonAct_Click(object sender, EventArgs e)
    {
        try
        {
            _excelApp = new Excel.Application();
            _wkb = _excelApp.Workbooks.Open(fileName,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);
            Excel.Worksheet worksheet = (Excel.Worksheet)_wkb.Worksheets[1];                
            Excel.Range excelRange = worksheet.UsedRange;               
            object[,] valueArray = (object[,])excelRange.get_Value(
                        Excel.XlRangeValueDataType.xlRangeValueDefault);
            //access the cells
            for (int row = 1; row <= worksheet.UsedRange.Rows.Count; ++row)
            {                    
                articul = valueArray[row, 1].ToString();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            //clean up stuffs
            _wkb.Close(false, Type.Missing, Type.Missing);
            Marshal.ReleaseComObject(_wkb);
            _excelApp.Quit();
            Marshal.FinalReleaseComObject(_excelApp);
        }
    }

При открытии книги Excel такая ошибка тровится

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

Прошу помощи. Спасибо

READ ALSO
C# MySql Клиент-серверная архитектура как реализовать [требует правки]

C# MySql Клиент-серверная архитектура как реализовать [требует правки]

Я не понимаю как реализовать клиент-серверную архитектуру на C# и MySql ! Поможет ли это приложению повысить безопасность?

280
Отправка файла на сервер с ключом

Отправка файла на сервер с ключом

Существует некий код, который должен отправлять файл на сервер с ключом, например, dataЕсть, конечно, класс WebClient и метод UploadFile, но он недостаточно...

245
Значение DataGridTextColumn в зависимости от выбора DataGridComboBoxColumn

Значение DataGridTextColumn в зависимости от выбора DataGridComboBoxColumn

Есть DataGrid данные заполняются через биндинг:

209
Передача значения в PasswordBox из ViewModel C# WPF MVVM

Передача значения в PasswordBox из ViewModel C# WPF MVVM

Здравствуйте! Так как нормального биндинга для PasswordBox не предусмотрено, то пришлось делать биндинг через параметр команды для кнопкиВ итоге...

363