c# - net - epplus java
Ancho de columna automático en EPPlus (7)
He usado este código con la versión 3.1.3.0 de EPPlus y está funcionando:
worksheet.Column(1).AutoFit();
donde la hoja de trabajo es la variable que hace referencia a la hoja de trabajo que he creado en mi código (¡no una clase con un método estático!).
Obviamente tienes que llamar a este método después de haber llenado las columnas .
¿Cómo hacer que las columnas tengan el ancho automático cuando los textos en las columnas son largos?
Yo uso este código
Worksheet.Column(colIndex).AutoFitColumn() ''on all columns''
Worksheet.cells.AutoFitColumns()
Worksheet.Column(colIndex).BestFit = True ''on all columns''
Ninguno de estos métodos está funcionando
¿Hay alguna forma de hacerlo funcionar?
Nota: algunos de mis textos usan Unicode.
Necesitarás calcular el ancho. No hay función de autosizing en la biblioteca que funcione como usted desee.
Autofitcolumn no funcionará con texto envuelto y celdas con fórmulas.
Consulte http://epplus.codeplex.com/discussions/218294?ProjectName=epplus para ver ejemplos de cómo puede resolver el problema.
Sé que es un poco tarde, pero hoy he tenido el mismo problema. Si tiene una worksheet.DefaultColWidth
definida, no funcionará. Eliminé esa línea y agregué Worksheet.cells.AutoFitColumns();
y funciona ahora
Sé que esta es una vieja pregunta, pero utilizo el código a continuación y parece abordar directamente lo que has intentado hacer.
using (var xls = new ExcelPackage())
{
var ws = xls.Workbook.Worksheets.Add("Some Name");
//**Add Column Names to worksheet!**
//**Add data to worksheet!**
const double minWidth = 0.00;
const double maxWidth = 50.00;
ws.Cells.AutoFitColumns(minWidth, maxWidth);
return pkg.GetAsByteArray();
}
Tuvo que usar la worksheet.Column(1).AutoFit(0);
AutoFit () no estaba haciendo el truco.
Use AutoFitColumns
, pero debe especificar las celdas, supongo que toda la hoja de trabajo:
VB.NET
Worksheet.Cells(Worksheet.Dimension.Address).AutoFitColumns()
DO#
Worksheet.Cells[Worksheet.Dimension.Address].AutoFitColumns();
Tenga en cuenta que debe llamar a este método después de completar la hoja de trabajo.
Yo uso esto y está funcionando bien.
Dim objExcel As New ExcelPackage
Dim Sheet As ExcelWorksheet = objExcel.Workbook.Worksheets.Add("SheetName")
Sheet.Cells("B1:BN").AutoFitColumns()