C# 使用 Microsoft.Office.Interop.Excel 读取 Excel 文件导致文件锁定只读的解决方案
要处理 Excel 文件被锁定只读的问题,可以尝试以下几种方法:
- 确保在读取 Excel 文件之前,关闭所有已经打开的 Excel 进程。可以通过任务管理器结束所有 Excel 进程,或者使用以下代码关闭 Excel 进程:
Process[] excelProcesses = Process.GetProcessesByName('Excel');
foreach (Process process in excelProcesses)
{
process.Kill();
}
- 在使用 Microsoft.Office.Interop.Excel 读取 Excel 文件后,确保及时释放 Excel 对象,以便其他进程可以访问该文件。可以使用以下代码释放 Excel 对象:
Marshal.ReleaseComObject(excelWorksheet);
Marshal.ReleaseComObject(excelWorkbook);
Marshal.ReleaseComObject(excelApp);
excelWorksheet = null;
excelWorkbook = null;
excelApp = null;
-
如果以上方法无效,可以尝试将 Excel 文件复制到另一个位置,然后再进行读取操作。
-
如果以上方法仍然无效,可以尝试使用第三方的 Excel 读取库,如 EPPlus 或 NPOI,这些库可以在不打开 Excel 进程的情况下读取 Excel 文件。
注意:在使用 Microsoft.Office.Interop.Excel 读取 Excel 文件时,可能会出现内存泄漏或进程无法释放的问题,因此建议在使用完毕后及时释放 Excel 对象,或者考虑使用其他的 Excel 读取库。
原文地址: https://www.cveoy.top/t/topic/qgfR 著作权归作者所有。请勿转载和采集!