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();
恐ろしい感謝を!今のところ私はC#アプリケーションが未処理の例外をスローしてクラッシュすることなく、上でやっているようにそれを閉じる方法を見つけることができました。 Excelファイルを保存して閉じるとアプリケーションを閉じることができません。それは開いたままにする必要があります。 – user1546315
少しのコードを投稿できますか(この質問に合わない場合は、そのコードで新しい質問を投稿できますか)...それは奇妙に思えますが、確かに簡単に解決できます... –
私は投稿を更新しましたいくつかのコードで。あなたがもっと必要なら私に知らせてください。私はすでにこの問題について複数のスレッドを投稿していますが、いくつかのソリューションを試しましたが、未処理の例外をスローせずにExcelアプリケーションを閉じたり保存したりすることができませんでした。 – user1546315