Запись в файл Excel, когда он открывается другим процессом
Мне интересно, можно ли записать в файл 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 ответ
Решение
В Excel установите рабочую книгу для совместного использования. Из офиса помогите:
- Открыть рабочую книгу в Excel
- Нажмите Обзор> Поделиться книгой
- На вкладке "Редактирование" установите флажок "Разрешить изменения более чем одним пользователем...".
- На вкладке "Дополнительно" выберите параметры, которые вы хотите использовать для отслеживания и обновления изменений, и нажмите кнопку "ОК".
- Если это новая книга, введите имя в поле "Имя файла". Или, если это существующая книга, нажмите кнопку ОК, чтобы сохранить книгу.
- Если рабочая книга содержит ссылки на другие рабочие книги или документы, проверьте ссылки и обновите все ссылки, которые не работают.
- Нажмите Файл> Сохранить.
- Когда вы закончите,
- Shared
появится в верхней части окна Excel, рядом с именем файла.
Затем файл будет открыт не эксклюзивно, что позволит другим пользователям редактировать его, пока в Excel он открыт.