21

Excel相互運用機能を介してExcelスプレッドシートに変更を保存する方法はありますか(この場合、ワークシートを追加しています)、既存のファイルを変更で上書きするかどうかをユーザーに確認する必要はありません。アプリケーションでスプレッドシートが開いているのをユーザーに見せたくないので、ファイルを上書きするかどうかを尋ねるメッセージ ボックスが表示されるのは、非常に場違いで、ユーザーを混乱させる可能性があります。

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() メソッド行は、未処理の例外をスローしていると報告されている行です。

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

3 に答える 3

57

基本的に、必要なのはExcelApp.DisplayAlerts = Falseだけです - ただし、これを行う方法は次のとおりです。

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

お役に立てれば

于 2012-10-24T18:29:04.200 に答える
8

ストップ オーバーライド アラートまたはテンプレートが既に使用されている場合は、このコードのみが必要です。

ExcelApp.DisplayAlerts = False

于 2013-08-29T05:57:42.137 に答える