【发布时间】:2016-01-21 23:24:08
【问题描述】:
我正在尝试使用 C# VSTO 将工作表 SaveAs() 保存为 csv 文件,并在将该 csv 文件加载到字符串后立即进行操作。问题是除非我关闭()工作簿,否则我无法访问新创建的 csv 文件。该错误与“文件锁定”问题有关。如果我关闭工作簿或将其复制到空白工作簿,那么我总是能够访问该文件,但是这些不是理想的解决方案。关于如何避免文件锁定的任何想法?
Excel.Worksheet sheet = workbook.Sheets[sheetName];
sheet.Activate();
sheet.Unprotect();
sheet.SaveAs(fileName, Excel.XlFileFormat.xlCSV, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing);
workbook.Close(); <-- Don't want that happen
// Get the Input CSV.
string contents = File.ReadAllText(InputCsvFileName);
【问题讨论】:
-
您要读取被另一个进程锁定的文件。试试这个解决方案。 stackoverflow.com/questions/3560651/…
-
我看不出这个问题与 VBA 有什么关系?为什么是 VBA 标签?如果不涉及 VBA,请编辑问题并删除标签...
-
@CindyMeister 因为同样的事情也发生在 VBA 上。