Guardando gli esempi forniti con EPPlus sono riuscito a creare la tabella pivot, ma non sono in grado di impostare il layout del report corretto per esso. Voglio che sia 'tabellare', non 'contorno' o altro. A me sembra che EPPlus non lo supporti ora, ma forse mi manca qualcosa?Come impostare il layout del report della tabella pivot su EPPlus?
5
A
risposta
6
Questo risultato è stato molto più semplice di quanto pensassi ... Impostando "tutto" su "falso", la tabella è stata resa come tabulare. Quindi in pratica:
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;
In questo modo ottengo la tabella pivot con layout tabellare.
3
Ecco la soluzione. Impostare in modo esplicito tutti i campi (compresi i campi nascosti) compatti e le proprietà del profilo su false.
(from pf in pivot.Fields
select pf).ToList().ForEach(f =>
{
f.Compact = false;
f.Outline = false;
});
Solo così c'è un contesto, ecco il mio codice per generare il pivot. È eseguito su metadati ma il concetto è lo stesso.
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;
Problemi correlati
- 1. Tabella pivot EPPlus - Comprimi tutto il campo
- 2. Tabella pivot vs. Pivot Cache
- 3. Lenta tabella pivot Excel MDX?
- 4. C++ implementazione tabella pivot
- 5. tabella pivot in mysql
- 6. Inserire l'etichetta della colonna nella tabella pivot usando Apache POI?
- 7. Report dati dinamici su tabella in ASP.Net
- 8. SSRS: Come creare la tabella di pivot di LIKe report in ssrs 2008 r2
- 9. Come modificare l'origine dati della tabella pivot in Excel?
- 10. Come impostare il tipo di dati della cella
- 11. Come impostare il valore predefinito del campo della tabella su 0.00?
- 12. Come ottenere il layout della tabella senza utilizzare le tabelle?
- 13. enorme allocazione della memoria quando si utilizza EPPlus Excel Biblioteca
- 14. Elementi obsoleti nell'elenco tabella pivot
- 15. Come impostare la colonna della tabella in Android
- 16. Laravel 4 eloquente tabella pivot
- 17. Tabella pivot; rimuovere i vecchi valori dall'affettatrice
- 18. Come tabella pivot in Big Query
- 19. excel tabella pivot - più colonne
- 20. Utilizzo degli accessor con campi della tabella pivot in Eloquent
- 21. Perché Google e Twitter usano il layout della tabella?
- 22. Laravel: JSON e tabella pivot
- 23. Tabella pivot pandone di Python
- 24. Eloquent ORM/Laravel - usa la struttura della tabella pivot personalizzata
- 25. Implementazione della tabella pivot Java utilizzando gli stream
- 26. Qual è il modo migliore per convertire il layout della tabella nel layout CSS?
- 27. Vs. Layout griglia. Tabella Layout
- 28. Calcolo della percentuale del totale nel modello Power Pivot
- 29. Come impostare il layout dal controller
- 30. Errori su EPPlus
Quando provo questo funziona principalmente, tuttavia ottengo "Row Labels" come intestazione per le mie righe anziché il nome del campo. Ricevo "Colonne etichette" come intestazione per le mie colonne anziché il nome del campo. Sai come impostarlo nella descrizione corretta? – briddums
Scusa, non ne ho idea ... – noocyte