Невозможно изменить Excel из ASP.NET CORE - PullRequest
0 голосов
/ 06 марта 2019

У меня есть основной проект ASP.Net и связанная библиотека классов.В библиотеке классов у меня есть код для обновления файла Excel.Он отлично работает, когда используется в модульном тесте или вызывается из собственного консольного приложения.Но он не генерирует исключение и не изменяет / обновляет файл Excel при вызове из веб-приложения.

public bool SaveOrder(Order order)
{
    excelApp = new Excel.Application();
    excelBook = excelApp.Workbooks.Open(_dbPath);
    orderMenuSheet = (Excel.Worksheet)excelBook.Worksheets.get_Item(2);
    try
    {
        foreach (var menu in order.OrderItems)
        {
            var rowNum = menu.MenuNumber + 2;
            orderMenuSheet.Cells[rowNum, 3] = menu.Menu;
            orderMenuSheet.Cells[rowNum, 7] = menu.Rating;
            orderMenuSheet.Cells[rowNum, 8] = menu.Review;
        }
        excelBook.Save();
    }
    catch (Exception)
    {
        return false;
    }
    finally
    {
        DisposeExcelObject(); //dispose excel objects
    }
    return true;
}

1 Ответ

0 голосов
/ 07 марта 2019

Я изменяю некоторый код, и он работает для меня. Я надеюсь, что это поможет

        System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;
        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

        // Creating Excel Application
        Microsoft.Office.Interop.Excel._Application excelApp = new Microsoft.Office.Interop.Excel.Application();
        System.Threading.Thread.CurrentThread.CurrentCulture = oldCI;

        var fileName = Path.Combine(_he.WebRootPath + "\\ClientFile", "test.xlsx");
        var excelBook = excelApp.Workbooks.Open(fileName);
      var  orderMenuSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Sheets["QUESTIONNAIRE PACK"];
            foreach (var menu in order.OrderItems)
            {
                var rowNum = menu.MenuNumber + 2;
                orderMenuSheet.Cells[rowNum, 3] = menu.Menu;
                orderMenuSheet.Cells[rowNum, 7] = menu.Rating;
                orderMenuSheet.Cells[rowNum, 8] = menu.Review;
            }
            excelBook.Save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...