8

Excelブックを簡単に開いたり閉じたりする方法を知っている人はいますか?

ファイルからデータを読み取る必要はありません。開いて閉じるだけで済みます。(*)

Microsoft.Office.Interop.Excel アセンブリを参照する必要があると思います。


*理由: サードパーティ ライブラリ (Aspose) でピボット テーブル情報を構成済みです。次に、生成されたピボット テーブルを読み取る必要があります。

残念ながら、Aspose ライブラリは実行時にピボット テーブルを生成できません。Excel がピボット テーブルの値を生成できるように、誰かがExcel でファイルを開く必要があります。

4

3 に答える 3

13

Microsoft.Office.Interop.Excelも参照した後、最後に必ずクリーンアップしてください。

using Excel = Microsoft.Office.Interop.Excel;

        Excel.ApplicationClass _Excel;
        Excel.Workbook WB;
        Excel.Worksheet WS;

    try
        {

        _Excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
        WB = _Excel.Workbooks.Open("FILENAME",
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing);

            //do something

        }
        catch (Exception ex)
        {
            WB.Close(false, Type.Missing, Type.Missing);

            throw;
        }
        finally
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(WB);

            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_Excel);


        }
于 2009-10-06T16:41:58.030 に答える
3

簡単なGoogleは、コードプロジェクトでこれを教えてくれます:

http://www.codeproject.com/KB/office/csharp_excel.aspx

于 2009-10-06T16:36:49.180 に答える
0

System.Diagnostics.Process を使用して、Excel を開始、監視、および終了することを検討してください。このサイトは、 http://www.thescarms.com/dotnet/Process.aspxの優れた紹介を提供します。これには、目に見えないウィンドウでの実行と入力の送信が含まれます。

于 2009-10-06T17:27:30.013 に答える