SpreadsheetLight 正在更新 excel 文件
SpreadsheetLight Updating excel file
我想阅读 excel 文件然后找到正确的行并向该行添加一个值但是我收到一条错误消息文件被另一个进程使用。
I have add the file to the FileStream so I am not sure why I am getting this error?
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();
}
我的顺序不正确我需要 fs.close 在 sheetsaveas 之前。
我想阅读 excel 文件然后找到正确的行并向该行添加一个值但是我收到一条错误消息文件被另一个进程使用。
I have add the file to the FileStream so I am not sure why I am getting this error?
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();
}
我的顺序不正确我需要 fs.close 在 sheetsaveas 之前。