我已经尝试了几种我在这里看到的解决方案,但在编写 Excel 文件时仍然遇到问题。
我有一个模板 xlsx 文件,我最初将其复制到工作文件中以开始使用。然后我有一个这样的块
using (var connection = new OleDbConnection(string.Format(
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Mode=ReadWrite;Extended Properties=\"Excel 12.0;HDR=YES\";",
outputfileName)))
{
connection.Open();
var command = connection.CreateCommand();
紧随其后的是一系列
command.ExecuteNonQuery();
最终,在 using 块关闭之前,我有
connection.Close( );
}
此时,我的应用程序似乎挂在 Excel 文件上。如果我尝试手动或通过打开它System.Diagnostics.Process
,我会得到“文件被锁定以供'另一个用户'编辑”,即使我回答“确定”,我仍然只能看到空白模板。
当我真正退出我的应用程序时,Excel 文件似乎是完整且可访问的。显然,关闭连接不足以刷新缓冲区并释放文件。
我想了解的是如何释放我对文件的保留,以便我实际上可以让我的应用程序让用户有机会使用 Process 为他打开文件,或者如果他愿意,可以手动打开它。