2012-10-24 18 views
20

excel interop(この場合はワークシートを追加しています)でExcelのスプレッドシートに変更を保存する方法はありますか?既存のファイルを変更内容で上書きする必要があります。私はユーザーがスプレッドシートを自分のアプリケーションで開いているのを見てもらいたくないので、ファイルを上書きするかどうかを尋ねるメッセージボックスが表示されるのを待って、非常に適切ではないように思われ、既存のExcelファイルをExcel Interopで保存/上書きする方法 - C#

私はworkbook.SaveAs(fileloaction)メソッドを使用しています。

ここで、Excelの相互参照のCOM参照オブジェクトを初期化します。

private Excel.Application app = null; 
    private Excel.Workbook workbook = null; 

    public Excel.Workbook Workbook 
    { 
     get { return workbook; } 
     set { workbook = value; } 
    } 
    private Excel.Worksheet worksheet = null; 
    private Excel.Range workSheet_range = null; 

以下は、Excelファイルを閉じたり保存したりするためのコードです。 workbook.close()メソッドの行は、処理されていない例外がスローされていると伝えられています。基本的に、あなたが必要とするすべてのExcelApp.DisplayAlerts = Falseのある

workbook.Close(true, startForm.excelFileLocation, Missing.Value); 
      Marshal.ReleaseComObject(app); 
      app = null; 
      System.GC.Collect(); 

答えて

52

- ここでは、しかし、私はそれを行う方法は次のとおりです。

ExcelApp.DisplayAlerts = False 
ExcelWorkbook.Close(SaveChanges:=True, Filename:=CurDir & FileToSave) 

希望これはのみ、このコードは、停止のために必要になります

+0

恐ろしい感謝を!今のところ私はC#アプリケーションが未処理の例外をスローしてクラッシュすることなく、上でやっているようにそれを閉じる方法を見つけることができました。 Excelファイルを保存して閉じるとアプリケーションを閉じることができません。それは開いたままにする必要があります。 – user1546315

+0

少しのコードを投稿できますか(この質問に合わない場合は、そのコードで新しい質問を投稿できますか)...それは奇妙に思えますが、確かに簡単に解決できます... –

+0

私は投稿を更新しましたいくつかのコードで。あなたがもっと必要なら私に知らせてください。私はすでにこの問題について複数のスレッドを投稿していますが、いくつかのソリューションを試しましたが、未処理の例外をスローせずにExcelアプリケーションを閉じたり保存したりすることができませんでした。 – user1546315

7

を支援オーバーライドアラートまたは既に使用されているテンプレート

ExcelApp.DisplayAlerts = False

0

私はこれが古い投稿であることを知っていますが、今後このような不満を起こすことなくこの作業を行う方法を共有したいと考えていました。

まず私が使用してについては好きではない何:ExcelApp.DisplayAlertsを=このフラグを設定する偽

だけではなく、あなたのプログラムでは、Excelファイルにこのプロパティを設定します。これは、ユーザーがファイルを変更してXをクリックしてファイルを変更すると、ファイルを保存するように求められず、後でフラストレーションが発生することを意味します。また、他のプロンプトが通常はポストすることもできなくなります。

私は、ファイルが存在する場合、それを保存する前に確認したいと

:それは働いた

 if (File.Exists(SaveAsName)) 
     { 
      File.Delete(SaveAsName); 
     } 
+0

ここではtryしていません。あなたの方法でも同様に動作しますが、最初のものと同じようにではありません。 –

関連する問題