DioDocs for Excel
DioDocs for Excel
ワークシートのPDFへのエクスポート
ファイル操作 > PDF ファイルへのエクスポート > 改ページの制御 > ワークシートのPDFへのエクスポート

DioDocs for Excel.NETは、PDFエクスポート時にページ境界に基づいて、ワークシートに自動的にページ番号を付けるオプションを提供します。

PrintManagerクラスのGetPaginationInfoメソッドは、水平および垂直ページ付けようのページ境界の配列を取得します。水平および垂直ページ付けには、GetPaginationInfoメソッドを個別に呼び出す必要があります。取得されたページ付け情報は、ページ設定に基づきます。ワークシートの印刷領域も定義することができ、定義しない場合は、セルA1とデータを含む最後のセル間の領域がデフォールト印刷領域として使用されます。

ページ設定に加えて、GetPaginationInfoメソッドのオーバーロードを使用することで、まとめて保持する範囲を定義し、範囲の設定を繰り返すこともできます。

コードの使用

次のサンプルコードは、PDFエクスポート時にページ設定に基づいてワークシートのページ付けを行う方法を示します。

C#
コードのコピー
IWorkbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];

//行ヘッダと列ヘッダが印刷されます
worksheet.PageSetup.PrintHeadings = true;
//範囲"B6:N80"が印刷されます
worksheet.PageSetup.PrintArea = "B6:N80";

//データを設定します
worksheet.Range["B6:S8"].Value = "1";
//テーブルを追加します
worksheet.Tables.Add(worksheet.Range["B6:N20"], true);

PrintManager printManager = new PrintManager();
       
//columnIndexsは[9、13]です。これは、水平方向が10列目と14列目の後で分割されることを意味します
IList<int> columnIndexs = printManager.GetPaginationInfo(worksheet, PaginationOrientation.Horizontal);
Console.WriteLine("In horizontal direction, page is split after column : " + columnIndexs[0].ToString() + " & " + columnIndexs[1].ToString());

//rowIndexsは[50、79]です。これは、垂直方向が51行目と80行目の後で分割されることを意味します
IList<int> rowIndexs = printManager.GetPaginationInfo(worksheet, PaginationOrientation.Vertical);
Console.WriteLine("In vertical direction, page is split after row : " + rowIndexs[0].ToString() + " & " + rowIndexs[1].ToString());

worksheet.Save(@"GetPagination.pdf", SaveFileFormat.Pdf);

次のサンプルコードは、PDFエクスポート時にページ設定、まとめて保持する範囲と繰り返し設定に基づいてワークシートのページ付けを行う方法を示します。

C#
コードのコピー
IWorkbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];

//行ヘッダと列ヘッダが印刷されます
worksheet.PageSetup.PrintHeadings = true;
//範囲"B6:N80"が印刷されます
worksheet.PageSetup.PrintArea = "B6:N80"; ;

//データを設定します
worksheet.Range["B60:N80"].Value = 1;
//テーブルを追加します
worksheet.Tables.Add(worksheet.Range["B6:N20"], true);

//6行目は各ページの上部に印刷されます
IList<RepeatSetting> repeatSettings = new List<RepeatSetting>();
RepeatSetting repeatSetting = new RepeatSetting();
repeatSetting.TitleRowStart = 5;
repeatSetting.TitleRowEnd = 5;
repeatSetting.Range = worksheet.Range["B6:N80"];
repeatSettings.Add(repeatSetting);

//25番目から60番目までの行は1ページにページ付けます
IList<IRange> keepTogetherRanges = new List<IRange>();
keepTogetherRanges.Add(worksheet.Range["$25:$60"]);

PrintManager printManager = new PrintManager();

//columnIndexsは[9、13]です。これは、水平方向が10列目と14列目の後で分割されることを意味します
IList<int> columnIndexs = printManager.GetPaginationInfo(worksheet, PaginationOrientation.Horizontal, keepTogetherRanges, repeatSettings);
//rowIndexsは[23, 66, 79]です。これは、垂直方向が23行目、66行目と79行目の後で分割されることを意味します
IList<int> rowIndexs = printManager.GetPaginationInfo(worksheet, PaginationOrientation.Vertical, keepTogetherRanges, repeatSettings);

IList<PageInfo> pages = printManager.Paginate(worksheet, keepTogetherRanges, repeatSettings);
printManager.SavePDF(@"GetPaginationRangesRepeatSettings.pdf", pages);