进程无法访问文件 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;

进程无法访问文件 xxx.xlsx因为它正由另一个进程使用

您正在打开 Excel 的实例,但从未关闭它。这不是自动完成的!您需要显式关闭 Excel 实例。否则,该过程将在后台徘徊,您的文件将被锁定。

这对

我有用

MailMessage Mail= new MailMessage();
Mail.Attachments.Add(new Attachment(filePath, "application/vnd.ms-excel"));
Mail.Attachments.Dispose();