C# .NETASP(VS2019) DeskTopApplication [EXCEL印刷 OFFICE365] (2019-06)


1.リスト 印刷のコード等追加しました。
(コピー元URL http://excelcsharp.lance40.com/post-3.html)

初めに、参照設定をする必要があります。
ソリューションエクスプローラの「追加」から「参照」を選択し、
「COM(タイプライブラリ)」から(例)MS.EXCEL16.0 ObjectLibraryを選択して下さい。


罫線など書き込んだり、セルに書式設定をしたテンプレートとするEXCELシートを事前に用意しておき、
その該当セルにデータを書き込み、印刷させると簡単に印刷処理可能。
レイアウト変更もEXCELシート直すだけなので非常に簡単です。
セルにデータを入れるとグラフが出るようにしておけばグラフも簡単に作成・印刷可能に。
ただし、印刷するPCにエクセルがインストールされている必要あり。

複数シート用
            Microsoft.Office.Interop.Excel.Worksheet xlSheet = null;
            Microsoft.Office.Interop.Excel.Worksheet xlSheet2 = null;

            // Excelアプリケーション生成
            xlApp = new Microsoft.Office.Interop.Excel.Application();

            // 既存のBookを開く
            xlBooks = xlApp.Workbooks;
            xlBook = xlBooks.Open(System.IO.Path.GetFullPath(@"C:\DB\1.xlsx"));

            // シートを選択する
            xlSheets = xlBook.Worksheets;

            xlSheet =  xlSheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
            xlSheet2 = xlSheets[2] as Microsoft.Office.Interop.Excel.Worksheet;

            // 表示
            xlApp.Visible = true;
            
            // セルのオブジェクト
            Microsoft.Office.Interop.Excel.Range xlRange = null;
            Microsoft.Office.Interop.Excel.Range xlCells = null;
            
            
            // 1シート B3セルを指定
            xlCells = xlSheet.Cells;
            xlRange = xlCells[20, 10] as Microsoft.Office.Interop.Excel.Range;
            xlRange.Value = "変更後の値1";

            // 2シート
            xlCells = xlSheet2.Cells;
            xlRange = xlCells[20, 10] as Microsoft.Office.Interop.Excel.Range;
            xlRange.Value = "変更後の値2";

うまく行かないのでこうしました。
戻る