从C#打开Excel文件#
问题描述:
从C#使用Microsoft.Office.Interop.Excel对象处理Excel时遇到问题。从C#打开Excel文件#
问题出现在我尝试打开文件写入时,我已经在Excel中打开了。这最终会导致错误,然后让Excel在后台运行。
如何知道该文件在打开之前已经打开?
什么是处理与Excel对象,从而杀死Excel进程的约定?
答
你好,你必须处理你的excel对象在t reatment(工作簿,applicationClass,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 */
);