在另一个进程打开时写入Excel文件

问题描述 投票:1回答:1

我想知道在打开文件时是否可以使用C#/ EPPlus写入Excel文件。我在尝试使用我的程序编写时仍然遇到异常,我在网上找不到任何东西。

以下是我必须附加到现有工作表的代码,该代码在未打开电子表格时工作正常

    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();
            }
        }
    }
c# epplus
1个回答
2
投票

在Excel中,设置要共享的工作簿。来自office help

  1. 在Excel中打开工作簿
  2. 单击查看>共享工作簿
  3. 在“编辑”选项卡上,选中“允许多个用户更改...”复选框。
  4. 在“高级”选项卡上,选择要用于跟踪和更新更改的选项,然后单击“确定”。
  5. 如果这是一个新工作簿,请在“文件名”框中键入一个名称。或者,如果这是现有工作簿,请单击“确定”以保存工作簿。
  6. 如果工作簿包含指向其他工作簿或文档的链接,请验证链接并更新任何已损坏的链接。
  7. 单击文件>保存。
  8. 完成后,- Shared将出现在Excel窗口的顶部,文件名旁边。

然后,该文件将以非排他性方式打开,允许其他人在Excel打开时对其进行编辑。

© www.soinside.com 2019 - 2024. All rights reserved.