使用EPPlus创建文件后,文件将被锁定

时间:2013-11-20 13:19:11

标签: c# excel epplus

我使用EPPlus库创建一个Excel文件。创建文件后,只要程序正在运行,就不能删除或编辑文件,因为它被“另一个用户”使用。我找不到任何对我有用的解决方案。

这是我的代码:

        var newFile = new FileInfo(path); 
        using (var xlPackage = new ExcelPackage(newFile))
        {
            var ws = xlPackage.Workbook.Worksheets.Add("Sheet1");
...
            xlPackage.Save();
        }

3 个答案:

答案 0 :(得分:2)

尝试将SaveAs与可以读/写的FileStram一起使用;

using(var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
using(var xlPackage = new ExcelPackage(stream))
{
    var ws = xlPackage.Workbook.Worksheets.Add("Sheet1");
    // ...
    xlPackage.SaveAs(stream);
}

答案 1 :(得分:1)

我知道这是一篇很老的帖子,但我自己也遇到了这个问题,如果你是从数据表构建电子表格,我找到了解决方案。

保存文件后处理数据表,即

dt.Dispose();

这解决了我的这个问题的版本

答案 2 :(得分:1)

我在类似场景中使用了Image类,并且必须使用

手动处理图像
img.Dispose();

无论img变量的范围如何,我都可以删除代表img的文件。