2016-11-08 13 views
0

は、レンジの改ページプロパティはxlPageBreakManualに設定することができ、その後、あなたはページがそうのようなコードを分割する場所を指定することができます手動改ページをピボットテーブル(Excel Interop)に追加することはできますか?プログラムで「通常の」Excelシートを生成

workbook.Worksheets[0].VPageBreaks.Add(sheet.Range["G1"]); 

を...しかし、このですピボットテーブルを印刷するときに可能ですか?ピボットテーブルはデータソース(私の場合は私の場合は「生データ」のページ)から供給されているので、私は思っていませんが、もしそうなら、私はどのように知りたいのですか?

これは私が印刷のためPivotTablizedシートを作製するために、今何をすべきかです:

private void FormatPivotTable() 
{ 
    . . . 
    ConfigureForPrinting(_xlPivotTableSheet.UsedRange.Rows.Count); 
} 

private void ConfigureForPrinting(int finalRow) 
{ 
    string lastColumn = GetExcelTextColumnName(_xlPivotTableSheet.UsedRange.Columns.Count); 
    string printArea = String.Format("A1:{0}{1}", lastColumn, finalRow); 
    _xlPivotTableSheet.PageSetup.PrintArea = printArea; 
    _xlPivotTableSheet.PageSetup.Orientation = XlPageOrientation.xlLandscape; 
    _xlPivotTableSheet.PageSetup.Zoom = false; 
    _xlPivotTableSheet.PageSetup.FitToPagesWide = 1; 
    _xlPivotTableSheet.PageSetup.FitToPagesTall = 50; 

    _xlPivotTableSheet.PageSetup.LeftMargin = _xlApp.Application.InchesToPoints(0.5); 
    _xlPivotTableSheet.PageSetup.RightMargin = _xlApp.Application.InchesToPoints(0.5); 
    _xlPivotTableSheet.PageSetup.TopMargin = _xlApp.Application.InchesToPoints(0.5); 
    _xlPivotTableSheet.PageSetup.BottomMargin = _xlApp.Application.InchesToPoints(0.5); 
    _xlPivotTableSheet.PageSetup.HeaderMargin = _xlApp.Application.InchesToPoints(0.5); 
    _xlPivotTableSheet.PageSetup.FooterMargin = _xlApp.Application.InchesToPoints(0.5); 

    string rangeToRepeat = string.Format("$A$6:${0}$7", lastColumn); 
    _xlPivotTableSheet.PageSetup.PrintTitleRows = rangeToRepeat; 
} 

何ユーザーが望んでいることは、データの各論理ブロックはシートにまとめておくことで、ブロック(5行ように)は複数のシートにまたがっていません。 IOW、ブロックが開始したときに現在のページに5行未満の空白がある場合は、改ページで次のページにスキップします。

これはピボットテーブルで可能ですか?

答えて

2

「論理ブロック」は、PivotFieldItemに対応するデータを意味します。その場合は、この方法を試してください。

はこれらPivotTableのプロパティを設定しTRUEに:またTRUEあなたがあるたびに改ページを設定するPivotFieldLayoutPageBreakプロパティに設定

ActiveSheet.PivotTables("PivotTable1").PrintTitles = True 
ActiveSheet.PivotTables("PivotTable1").RepeatItemsOnEachPrintedPage = True 

を項目の変更:

ActiveSheet.PivotTables("PivotTable1").PivotFields("Class").LayoutPageBreak = True 

はまた、場合にTRUEにこのプロパティを設定する必要があるだけでアイテムがあります1レコード。

ActiveSheet.PivotTables("PivotTable1").PivotFields("Class").LayoutBlankLine = True 

を必要に応じて上記のコマンドがVBAであるが、彼らはあなたにC#

を使用してこれらのプロパティを設定する方法の良いアイデアを与える必要があり、「PivotTable1」と「クラス」の値を交換してください
関連する問題