我使用EPPlus库创建一个Excel文件。创建文件后,只要程序正在运行,就不能删除或编辑文件,因为它被“另一个用户”使用。我找不到任何对我有用的解决方案。
这是我的代码:
var newFile = new FileInfo(path);
using (var xlPackage = new ExcelPackage(newFile))
{
var ws = xlPackage.Workbook.Worksheets.Add("Sheet1");
...
xlPackage.Save();
}
答案 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的文件。