猿问

SpreadsheetLight 更新 Excel 文件

我想读取 Excel 文件,然后找到正确的行并向该行添加一个值,但我收到一条错误消息文件已被另一个进程使用。


我已将文件添加到 FileStream,所以我不确定为什么会收到此错误?


System.IO.IOException:“进程无法访问文件 'D:\repos\FHIRVal\Update.xlsx',因为它正在被另一个进程使用。”


public static int UpdateExecelFile(string id, string status)

    {

        string FilePath = "D:\\repos\\FHIRVal\\Update.xlsx";



        using (SLDocument sl = new SLDocument())

        {

            FileStream fs = new FileStream(FilePath, FileMode.Open);

            SLDocument sheet = new SLDocument(fs, "Sheet");


            SLWorksheetStatistics stats = sheet.GetWorksheetStatistics();

            for (int j = 1; j < stats.EndRowIndex; j++)

            {

                var value = sheet.GetCellValueAsString(j, 2);


                if (value == id)

                {

                    Console.WriteLine(string.Format("{0} --- {1}", "Updating File", id));

                    string updateRow = string.Format("{0}{1}", "C",j);


                    sl.SetCellValue(updateRow, status);

                }


            }

            sheet.SaveAs(FilePath);

            fs.Close();

        }


烙印99
浏览 133回答 1
1回答

缥缈止盈

我的顺序不正确,我需要在 Sheetsaveas 之前有 fs.close 。
随时随地看视频慕课网APP
我要回答