Запись в файл Excel, когда он открывается другим процессом - PullRequest
0 голосов
/ 05 сентября 2018

Мне интересно, можно ли записать в файл Excel, используя C # / EPPlus, пока у меня открыт файл. Я продолжаю получать исключения при попытке написать с помощью своей программы, и я не могу найти что-либо в Интернете.

Вот код, который я должен добавить к существующему листу, который отлично работает, когда электронная таблица не открыта

    public static void AppendExistingMailingWorkbook(string workSheet, string filePath, IList<MailingReportItem> reportData)
    {
        //create a fileinfo object of an excel file on the disk
        FileInfo file = new FileInfo(filePath);
        Object thisLock = new Object();

        lock (thisLock)
        {
            //create a new Excel package from the file
            using (ExcelPackage excelPackage = new ExcelPackage(file))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[workSheet];

                var rowToAppend = worksheet.Dimension.End.Row + 1;
                for (int i = 0; i < reportData.Count; i++, rowToAppend++)
                {
                    worksheet.Cells[rowToAppend, 1].Value = reportData[i].BatchDate.Date.ToString("MM/dd/yyyy");
                    worksheet.Cells[rowToAppend, 2].Value = reportData[i].BatchId;
                    worksheet.Cells[rowToAppend, 3].Value = reportData[i].FileName;
                    worksheet.Cells[rowToAppend, 4].Value = reportData[i].PageCount;
                    worksheet.Cells[rowToAppend, 5].Value = reportData[i].MailDate;
                }

                //save the changes
                excelPackage.Save();
            }
        }
    }

1 Ответ

0 голосов
/ 05 сентября 2018

В Excel установите рабочую книгу для совместного использования. Из офисной справки :

  1. Открыть рабочую книгу в Excel
  2. Нажмите Обзор> Поделиться книгой
  3. На вкладке Редактирование установите флажок Разрешить изменения более чем одним пользователем ...
  4. На вкладке «Дополнительно» выберите параметры, которые вы хотите использовать для отслеживания и обновления изменений, и нажмите кнопку «ОК».
  5. Если это новая рабочая книга, введите имя в поле «Имя файла». Или, если это существующая книга, нажмите ОК, чтобы сохранить книгу.
  6. Если рабочая книга содержит ссылки на другие рабочие книги или документы, проверьте ссылки и обновите все ссылки, которые не работают.
  7. Нажмите Файл> Сохранить.
  8. Когда вы закончите, - Shared появится в верхней части окна Excel, рядом с именем файла.

Файл будет открыт неэксклюзивно, что позволит другим пользователям редактировать его, пока в Excel он открыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...