进程无法访问文件 xxx.xlsx因为它正由另一个进程使用
本文关键字:进程 另一个 xlsx 访问 文件 xxx 因为 | 更新日期: 2023-09-27 18:36:01
嗨,在过去的两天里一直在为这个问题而苦苦挣扎,似乎无法弄清楚问题是什么,我已经看到了其他相关的帖子,但没有一个与我实现代码的方式直接相关,我没有使用流阅读器/写入器我只是将文件复制到指定的文件夹中, 我试图在阅读文件后关闭文件阅读器,但这也没有帮助,我没有想法,任何人都可以指导我这段代码,或者建议另一种有效的实现方式。该文件绝不是在其他位置打开的。
public ActionResult Upload(HttpPostedFileBase file)
{
List<CleanSupplierClaim> supplierClaimsData = new List<CleanSupplierClaim>();
try
{
if (file.ContentLength > 0)
{
if (file.FileName.EndsWith("xls") || file.FileName.EndsWith("xlsx")) ;
string path = AppDomain.CurrentDomain.BaseDirectory
+ "upload''" + file.FileName;
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
file.SaveAs(path);
Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(path);
Excel.Worksheet worksheet = workbook.ActiveSheet;
Excel.Range range = worksheet.UsedRange;
您正在打开 Excel 的实例,但从未关闭它。这不是自动完成的!您需要显式关闭 Excel 实例。否则,该过程将在后台徘徊,您的文件将被锁定。
这对
我有用
MailMessage Mail= new MailMessage();
Mail.Attachments.Add(new Attachment(filePath, "application/vnd.ms-excel"));
Mail.Attachments.Dispose();