從C#使用Microsoft.Office.Interop.Excel對象處理Excel時遇到問題。從C#打開Excel文件#
問題出現在我嘗試打開文件寫入時,我已經在Excel中打開了。這最終會導致錯誤,然後讓Excel在後臺運行。
如何知道該文件在打開之前已經打開?
什麼是處理與Excel對象,從而殺死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 */
);