Проблема с использованием Microsoft.Office.Interop.Excel: не удалось загрузить офис файла или сборки, версия = 15.0.0.0 - PullRequest
1 голос
/ 13 марта 2020

Я создал веб-приложение, используя. net core 3.1.1, и загрузил Microsoft.Office.Interop.Excel из Nuget. Причина, по которой я не использую Closed XML, так как он не работает при компиляции ... см. ссылку на stackO сообщение здесь

Пакет Nuget описывается следующим образом:

This the assembly necessary to do Office 2013 Excel interop
Version:  15.0.4795.1000

Ниже приведена ошибка, которую я получаю:

Could not load file or assembly 'office, Version=15.0.0.0

Ниже мой код

public static void exportToExcel1(DataTable dt, string fileName)
        {
            XL.Application app = new XL.Application();
            app.DisplayAlerts = false;

            try
            {
                XL.Workbook wb = app.Workbooks.Add(1);
                XL.Worksheet ws = (XL.Worksheet)wb.Worksheets[1];

                // export column headers
                for (int colNdx = 0; colNdx < dt.Columns.Count; colNdx++)
                {
                    ws.Cells[1, colNdx + 1] = dt.Columns[colNdx].ColumnName;
                }

                // export data
                for (int rowNdx = 0; rowNdx < dt.Rows.Count; rowNdx++)
                {
                    for (int colNdx = 0; colNdx < dt.Columns.Count; colNdx++)
                    {
                        ws.Cells[rowNdx + 2, colNdx + 1] = (dt.Rows[rowNdx][colNdx]).ToString();
                    }
                }

                //ws.Columns.AutoFit();

                wb.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, XL.XlSaveAsAccessMode.xlNoChange,
                    Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing);
                wb.Close(false, Type.Missing, Type.Missing);
            }
            finally
            {
                app.Quit();
            }
        }

1 Ответ

0 голосов
/ 13 марта 2020

Пакет NuGet, с которым вы связаны, обеспечивает взаимодействие между вашим кодом и Office .dll. Вам все еще нужно установить MS Office на компьютер и настроить свой код таким образом, чтобы он мог найти библиотеку.

Следует также отметить, что Microsoft не поддерживает или не рекомендует использовать Office таким образом. Это может вызвать всевозможные проблемы с производительностью или даже вызвать зависание процесса вашего веб-сервера.

...