从C#打开Excel文件

使用Microsoft.Office.Interop.Excel对象从C#使用Excel时遇到问题。

当我尝试打开一个文件写入,我已经在Excel中打开时出现问题。 这最终会导致错误,然后在后台运行Excel的实例。

如何知道该文件在打开之前已经打开?

什么是处理与Excel对象,从而杀死Excel进程的约定?

下面的文章提供了一个检查文件是否已经打开的好方法:

有没有办法检查一个文件是否正在使用?

这篇文章谈到杀死excel的过程:

杀死进程Excel C#

希望这些是有帮助的

你好,你必须处理你的Excel对象处理结束(工作簿,应用程序类,usedRange,工作表)

workbook.Close(false, workbookPath, null); applicationClass.Quit(); while (Marshal.ReleaseComObject(usedRange) > 0) { } while (Marshal.ReleaseComObject(worksheet) > 0) { } while (Marshal.ReleaseComObject(workbook) > 0) { } while (Marshal.ReleaseComObject(applicationClass) > 0) { } 

打开已打开 – 更多只是在MSDN上键入Workbooks.Open。 这里是保存示例,您只需覆盖(仍然打开)而不查询:o), xlSharedxlLocalSessionChanges是关键字。

  _xlsWorkbook.SaveAs( targetFileName /* Filename */ ,Excel_ForMissing.XlFileFormat.xlExcel8 /* FileFormat */ ,Missing.Value /* Password */ ,Missing.Value /* WriteResPassword */ ,Missing.Value /* ReadOnlyRecommended */ ,Missing.Value /* CreateBackup */ ,Excel_ForMissing.XlSaveAsAccessMode.xlShared /* AccessMode */ ,Excel_ForMissing.XlSaveConflictResolution.xlLocalSessionChanges /* ConflictResolution */ ,false /* AddToMru */ ,Missing.Value /* TextCodepage */ ,Missing.Value /* TextVisualLayout */ ,true /* Local */ );