2

C#ウィンドウフォームアプリケーションを使用して、Excelファイルにデータを追加しています。しかし、プログラムを実行した後、Excelファイルを開くには、ウィンドウフォームを閉じる必要があります。そうしないと、データを追加したExcelファイルだけでなく、Excelファイルも開くことができません。ウィンドウフォームアプリケーションを閉じずにExcelファイルを開こうとすると、データとセルが表示されませんでした(空白の画面のみ)。

Excelファイルを表示するには、アプリケーションを閉じる必要があります。でも、COMオブジェクトを解放するためのコードを記述しました。

        workbook = appExl.Workbooks.Open(Excel_file, 0,false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
        workbook.Save();            
        System.Runtime.InteropServices.Marshal.ReleaseComObject(ShtRange);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(NwSheet);           
        workbook.Close(true, Missing.Value, Missing.Value);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
        appExl.Quit();
        System.Runtime.InteropServices.Marshal.ReleaseComObject(appExl);

実行後にアプリケーションを閉じずにExcelファイルを開く方法を教えてください。

4

2 に答える 2

0

これは、C#を使用してExcelシートに書き込むサンプルコードであり、うまく機能します。Microsoft.Office.Interop.Excelを使用して次の名前空間を使用します。Excelを使用=Microsoft.Office.Interop.Excel;

これをチェックしてください

   Excel.Application XlApp = null;
        Excel.Workbook workbook = null;
        Excel.Worksheet Ws = null;
        Excel.Range Range1 = null;
        Excel.Worksheet X = null;

        XlApp = new Excel.Application();
        XlApp.Visible = true;
        workbook = XlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
        Ws = (Excel.Worksheet)workbook.Worksheets[1];
        XlApp.WindowState = XlWindowState.xlMaximized;


                Ws = (Excel.Worksheet)workbook.Worksheets[1];

                Ws.Activate();
                Ws.Name = "MyFirstSheet";



              int rowIndex = 1; int columnIndex = 2;
               xlApp.Cells(rowIndex, columnIndex) = "Blah"
于 2012-07-30T04:24:28.603 に答える
0

これを最初に試して、既存のファイル(xls)を開きます。次に、ワークシートを必要なだけ追加して、データを書き込みます。

            Missing _value = Missing.Value;
            string strtemp = "C:\\MyExcel.xls";
            Microsoft.Office.Interop.Excel.Workbook Wtemp = XlApp.Workbooks.Open(strtemp, _value, _value, _value, _value, _value, _value, _value, _value, _value, _value, _value,  _value, _value, _value);
Wtemp = xlApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

次に、上記の関数を使用して、それにデータを書き込むことができます...

于 2012-07-30T04:56:49.960 に答える