Al observar las muestras que vienen con EPPlus, he logrado crear la tabla dinámica, pero no puedo establecer el diseño de informe correcto para ella. Quiero que sea 'tabular', no 'esquema' o lo que sea. Para mí, parece que EPPlus no admite esto ahora, pero ¿quizás me falta algo?¿Cómo establecer el diseño de informe de la tabla pivote en tabular en EPPlus?
5
A
Respuesta
6
Esto resultó ser mucho más fácil de lo que pensaba ... Al configurar 'todo' en 'falso', la tabla se representa como Tabular. Así que, básicamente:
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;
De esa manera obtengo la tabla dinámica con diseño tabular.
3
Aquí está la solución. Establezca explícitamente todos los campos (incluidos los ocultos) compactos y las propiedades del esquema en falso.
(from pf in pivot.Fields
select pf).ToList().ForEach(f =>
{
f.Compact = false;
f.Outline = false;
});
Justo lo que no es cierto contexto, aquí es mi código para generar el pivote. Se ejecuta metadata pero el concepto es el mismo.
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;
Cuestiones relacionadas
- 1. Tabla de pivote EPPlus - Colapsar todo el campo
- 2. tabla pivote en mysql
- 3. Cómo establecer el tipo de columna cuando se usa EPPlus
- 4. ¿pivote de Postgresql? Tabla cruzada?
- 5. SQL máximo de varias columnas en la tabla pivote
- 6. Pivote de salida similar a una tabla en R?
- 7. Cómo establecer dinámicamente isIgnorePagination en el informe de jaspe?
- 8. cómo eliminar la fila de la tabla en el diseño de la tabla en android
- 9. la tabla pivote y Concatenar Columnas
- 10. Cómo establecer la columna de tabla en android
- 11. MySQL Query pivote/tabla de referencias cruzadas
- 12. Producir una tabla de resumen ("pivote"?)
- 13. Pivote en SQLite
- 14. cómo establecer el color de fondo en el diseño xml?
- 15. Pregunta sobre el diseño de la tabla
- 16. Cómo establecer el borde para la tabla
- 17. Diseño de tabla en WPF
- 18. ¿Cómo establecer la altura máxima de un diseño en android?
- 19. Generar un informe en PDF a partir de un archivo Excel generado (Biblioteca EPPLUS)
- 20. Establecer nuevo diseño en el fragmento
- 21. Establecer el borde de la tabla interna en HTML
- 22. Muchos a muchos tabla unirse a Pivote
- 23. Cómo combinar dos celdas en el diseño de tabla
- 24. ¿Cómo establecer el tamaño y el diseño en onSizeChanged?
- 25. MySQL renglón pivote en el número de dinámica de columnas
- 26. ¿Cómo puedo serializar un diseño de informe de DevExpress XtraReport?
- 27. Datos de pivote en T-SQL
- 28. ¿Cómo devolver el valor del DataSource de la tabla al informe principal en iReport?
- 29. ¿Cómo establecer el valor del cuadro de texto del informe de cristal en tiempo de ejecución?
- 30. Tablas/gráficos dinámicos EPPlus
Cuando pruebo esto funciona principalmente, sin embargo, obtengo 'Etiquetas de fila' como el encabezado de mis filas en lugar del nombre del campo. Obtengo 'Etiquetas de columna' como el encabezado de mis columnas en lugar del nombre del campo. ¿Sabes cómo configurarlo para la descripción correcta? – briddums
Lo siento, no tengo idea ... – noocyte