「ClosedXML - Excelファイルの操作」の版間の差分

ナビゲーションに移動 検索に移動
982行目: 982行目:
       {
       {
           Console.WriteLine($"致命的なエラー: プログラムの実行中に予期せぬエラーが発生しました。詳細: {ex.Message}");
           Console.WriteLine($"致命的なエラー: プログラムの実行中に予期せぬエラーが発生しました。詳細: {ex.Message}");
      }
    }
}
</syntaxhighlight>
<br><br>
== 印刷設定の調整 ==
以下の例では、Excelの印刷設定を調整している。<br>
指定した印刷設定が適用されたExcelファイルが作成されるため、実際に印刷またはプレビューすることにより、これらの設定の効果を確認できる。<br>
<br>
<u>※注意</u><br>
<u>印刷設定の一部 (特にページレイアウトに関するもの) は、Excelで直接ファイルを開いて確認する必要がある。</u><br>
<u>実際の印刷結果は、使用するプリンタやドライバにより若干異なる場合がある。</u><br>
<br>
<u>実際の印刷時には、プリンタのドライバや設定により上書きされる可能性がある。</u><br>
<u>最終的な印刷結果を確認するには、実際にプリンタで印刷する、または、Excelのプリントプレビュー機能を使用することを推奨する。</u><br>
<br>
<syntaxhighlight lang="c#">
using System;
using ClosedXML.Excel;
class Program
{
    static void Main(string[] args)
    {
      try
      {
          using (var workbook = new XLWorkbook())
          {
            var worksheet = workbook.Worksheets.Add("印刷設定サンプル");
            // サンプルデータの追加
            for (int i = 1; i <= 20; i++)
            {
                worksheet.Cell(i, 1).Value = $"行 {i}";
                worksheet.Cell(i, 2).Value = $"データ {i}";
            }
            // ページ設定の調整
            // ページ設定にアクセスする
            var pageSetup = worksheet.PageSetup;
            // 用紙サイズと向きの設定
            /// 用紙サイズをA4に設定
            pageSetup.PaperSize = XLPaperSize.A4Paper;
            /// 印刷の向きを横向きに設定
            pageSetup.PageOrientation = XLPageOrientation.Landscape;
            // 上下左右の余白を設定 (単位はポイント)
            pageSetup.Margins.Top    = 28.35; // 1cm = 28.35ポイント
            pageSetup.Margins.Bottom = 28.35;
            pageSetup.Margins.Left  = 28.35;
            pageSetup.Margins.Right  = 28.35;
            // ヘッダとフッタの設定
            // ヘッダ, フッタ, テキスト, ページ番号, 日付を追加
            pageSetup.Header.Left.AddText("ClosedXML サンプル");
            pageSetup.Header.Right.AddText(XLHFPredefinedText.PageNumber);
            pageSetup.Footer.Center.AddText("印刷日: ");
            pageSetup.Footer.Center.AddText(XLHFPredefinedText.Date);
            // 印刷範囲の設定
            // 特定の範囲のみを印刷するように設定
            worksheet.PageSetup.PrintAreas.Add("A1:B15");
            // 印刷タイトルの設定
            // 各ページで繰り返し表示される行 (通常はヘッダ行) を設定
            worksheet.PageSetup.SetRowsToRepeatAtTop(1, 1);
            // 1ページに収まるように自動調整
            // 初期の拡大率を設定, 指定したページ数に収まるように自動調整
            worksheet.PageSetup.Scale              = 100;  // 100%からスタート
            worksheet.PageSetup.ScaleHFWithDocument = true;
            worksheet.PageSetup.FitToPages(1, 0);            // 幅を1ページに、高さは自動
            // ラインの表示 / 非表示
            // セルの境界線が印刷されなくなる
            // データの視認性が向上するが、セルの区切りが不明確になる場合がある
            pageSetup.ShowGridlines            = false;  // 印刷時にグリッドライン (セルの罫線) を非表示にする
            // 各ページに行番号と列文字が印刷される
            // 大きなデータセットを扱う場合に便利である
            pageSetup.ShowRowAndColumnHeadings = true;  // 印刷時に行番号と列文字 (見出し) を表示する
            // 印刷品質の設定
            // 印刷品質をDPI (1インチあたりのドット数) で指定する
            // 以下の例では、600 DPIに指定しているが、使用するプリンタがサポートする値に調整すること
            pageSetup.PrintQuality = 600;
            // 白黒印刷の指定
            // カラーデータでも白黒で印刷する
            // ただし、色の違いで表現していた情報が失われる可能性があるので注意すること
            pageSetup.BlackAndWhite = true;
            // ファイルの保存
            workbook.SaveAs("印刷設定サンプル.xlsx");
            Console.WriteLine("Excelファイルの作成に成功");
          }
      }
      catch (Exception ex)
      {
          Console.WriteLine($"エラー: プログラムの実行中に問題が発生  詳細: {ex.Message}");
       }
       }
     }
     }

案内メニュー