EPPlusに付属のサンプルを見ると、ピボットテーブルを作成できましたが、正しいレポートレイアウトを設定できません。私はそれが '表形式'であること、 'アウトライン'などではないことを望んでいます。私にはEPPlusはこれを今サポートしていないようですが、おそらく私は何かを見逃していますか?EPPlusでピボットテーブルのレポートレイアウトを表形式に設定する方法は?
5
A
答えて
6
これは私が思っていたよりも簡単な方法であることが判明しました。「すべて」を「偽」に設定すると、表が表形式でレンダリングされます。だから、基本的には:
pivotTable.Compact = false;
pivotTable.CompactData = false;
pivotTable.Indent = 0;
pivotTable.RowGrandTotals = false;
pivotTable.UseAutoFormatting = true;
pivotTable.ShowMemberPropertyTips = false;
pivotTable.DataOnRows = false;
field.Outline = false;
field.Compact = false;
field.ShowAll = false;
field.SubtotalTop = false;
私は表形式のレイアウトで、ピボットテーブルを取得するこの方法。
3
ここに解決策があります。明示的にすべてのフィールド(隠しフィールドを含む)のcompactプロパティとoutlineプロパティをfalseに設定します。
(from pf in pivot.Fields
select pf).ToList().ForEach(f =>
{
f.Compact = false;
f.Outline = false;
});
ちょうどそこにはいくつかの文脈がありますが、ここに私のピボットを生成するコードがあります。これはメタデータを使い果たしたものの、概念は同じです。
var pivotTabName = "Pivot";
if (tab.Form.FormTabs.Count(ft => ft.FormTabPivotFields.Any()) > 1)
pivotTabName = tab.DisplayName + " " + pivotTabName;
var sheet = package.Workbook.Worksheets.Add(pivotTabName);
const int pivotRow = 7;
const int pivotCol = 1;
var dataSourceRange = table.WorkSheet.Workbook.Names[table.Name + "_PivotSource"];
var pivot = sheet.PivotTables.Add(sheet.Cells[pivotRow, pivotCol], dataSourceRange.Worksheet.Cells[dataSourceRange.Address],
pivotTabName.Replace(" ", string.Empty));
const bool outline = false;
const bool compact = false;
const bool showAll = false;
pivot.Compact = compact;
pivot.CompactData = compact;
pivot.Outline = outline;
pivot.OutlineData = outline;
pivot.Indent = 0;
pivot.UseAutoFormatting = true;
pivot.ShowMemberPropertyTips = false;
pivot.DataOnRows = false;
pivot.RowGrandTotals = false;
pivot.ShowDrill = false;
pivot.EnableDrill = false;
pivot.RowGrandTotals = false;
pivot.ColumGrandTotals = true;
pivot.MultipleFieldFilters = true;
(from pf in tab.FormTabPivotFields
where pf.PivotFieldType.Name == "Page"
orderby pf.DisplayOrder
select pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName).ToList().ForEach(fieldName =>
{
var fld = pivot.PageFields.Add(pivot.Fields[fieldName]);
fld.Compact = compact;
fld.Outline = outline;
fld.ShowAll = showAll;
fld.SubtotalTop = false;
fld.SubTotalFunctions = eSubTotalFunctions.None;
});
(from pf in tab.FormTabPivotFields
where pf.PivotFieldType.Name == "Row"
orderby pf.DisplayOrder
select pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName).ToList().ForEach(fieldName =>
{
var fld = pivot.RowFields.Add(pivot.Fields[fieldName]);
fld.Compact = compact;
fld.Outline = outline;
fld.ShowAll = showAll;
fld.SubtotalTop = false;
fld.SubTotalFunctions = eSubTotalFunctions.None;
});
(from pf in tab.FormTabPivotFields
where pf.PivotFieldType.Name == "Column"
orderby pf.DisplayOrder
select pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName).ToList().ForEach(fieldName =>
{
var fld = pivot.ColumnFields.Add(pivot.Fields[fieldName]);
fld.Compact = compact;
fld.Outline = outline;
fld.ShowAll = showAll;
fld.SubtotalTop = false;
fld.SubTotalFunctions = eSubTotalFunctions.None;
});
(from pf in tab.FormTabPivotFields
where pf.PivotFieldType.Name == "Data"
orderby pf.DisplayOrder
select new
{
FieldName = pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName,
Format = pf.FormTabMeasureTypeColumn != null ?
(pf.FormTabMeasureTypeColumn.MeasureFormatIndex == 1 ? pf.FormTab.MeasureColumnExcelNumberFormat1 : pf.FormTab.MeasureColumnExcelNumberFormat2)
: "General"
}).ToList().ForEach(md =>
{
var df = pivot.DataFields.Add(pivot.Fields[md.FieldName]);
df.Format = md.Format;
df.Field.Compact = compact;
df.Field.Outline = outline;
});
(from pf in pivot.Fields
where pf.Axis == ePivotFieldAxis.None && pf.IsDataField == false
select pf).ToList().ForEach(f =>
{
f.Compact = compact;
f.Outline = outline;
});
// apply pivot table styling
pivot.TableStyle = TableStyles.Medium15;
関連する問題
- 1. EPPlusピボットテーブル/チャート
- 2. ピボットテーブル形式をコピーする
- 3. xlsxwriterでDATE形式に列を設定する方法
- 4. DateTimeの正しい形式を設定する方法は?
- 5. iPhoneで日付形式を設定する方法
- 6. 特定の形式でtime_tを出力する方法は?この形式で
- 7. SSAS表形式モデルに接続されたピボットテーブルに計算された列を追加する方法は?
- 8. EPPlusを使用してワークシートのページレイアウトブレークを設定する方法
- 9. アンドロイドで表形式でデータを表示する方法は?
- 10. 表形式データの表示/書式設定
- 11. EPPlusを使用した式による条件付き書式設定
- 12. xsltでGMT形式にdateTimeを表示する方法は?
- 13. C#のEPPlusでxlsxセル幅を設定するには
- 14. ListViewをアンドロイドの表形式で表示する方法
- 15. Rでテキスト表示を書式設定する方法Shiny?
- 16. jtextfieldを特定の形式に検証する方法は?
- 17. Pythonロギング:ロギング設定ファイルの形式文字列で改行を表現する方法は?
- 18. xlwt形式の文字列でセルの形式を設定する
- 19. lwuit形式でスクロールバーを表示する方法は?
- 20. vbaランタイムでクエリフィールド形式を設定するには
- 21. Python 3で文字列形式のスペースを設定する方法
- 22. symfonyのyaml設定ファイルをxml形式に変換する方法
- 23. 日付形式を別の形式に変換する方法
- 24. PHP - 日付形式の書式設定
- 25. django形式で特定の表の列を反復する方法
- 26. 特定の形式でWebにログオンする方法
- 27. Excelのセルに日付形式をプログラムで設定する
- 28. mvc3に通貨形式の金額を表示する方法
- 29. 特定の形式のトークンを定義する方法
- 30. バーコードの形式を特定する方法は?
私はこれを試してみると大部分は動作しますが、フィールドの名前ではなく行のヘッダーとして「行ラベル」が表示されます。フィールドの名前ではなく、列のヘッダーとして「列ラベル」を取得します。それを正しい記述に設定する方法を知っていますか? – briddums
申し訳ありませんが... – noocyte