从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), xlShared和xlLocalSessionChanges是关键字。
_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 */ );