自动列宽度在EPPlus
本文关键字:EPPlus | 更新日期: 2023-09-27 18:05:53
如何使列是自动宽度时,列中的文本很长?
我使用这个代码
Worksheet.Column(colIndex).AutoFitColumn() 'on all columns'
Worksheet.cells.AutoFitColumns()
Worksheet.Column(colIndex).BestFit = True 'on all columns'
这些方法都不起作用
有什么办法使它工作吗?
使用AutoFitColumns
,但您必须指定单元格,我假设整个工作表:
VB。净
Worksheet.Cells(Worksheet.Dimension.Address).AutoFitColumns()
c# Worksheet.Cells[Worksheet.Dimension.Address].AutoFitColumns();
请注意,您需要在填写工作表后调用此方法
我已经将此代码与版本3.1.3.0的EPPlus一起使用,它正在工作:
worksheet.Column(1).AutoFit();
其中工作表是引用我在代码中创建的工作表的变量(不是带有静态方法的类!)。
显然,你必须调用这个方法后,你已经填写了列。
只是想指出你可以在没有指定范围的情况下适合单元格,只是要确保在格式化所有列等之后调用这个:
worksheet.Cells.AutoFitColumns()
我知道这是一个老问题,但我使用下面的代码,它似乎直接解决了你想做的事情。
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();
}
我知道有点晚了,但是我今天遇到了同样的问题。如果你定义了worksheet.DefaultColWidth
,它就行不通了。我已经删除了那行并添加了Worksheet.cells.AutoFitColumns();
,现在它可以工作了。
我用的很好。
试题:
ExcelWorksheet wsSheet1 = ExcelPkg.Workbook.Worksheets.Add("Sheet1");
wsSheet1.Cells[wsSheet1.Dimension.Address].AutoFitColumns();
ExcelPkg.SaveAs();
. net Core作为。net的后继者不再支持使用EPPplus库自动适配单元格的功能。
worksheet.Cells.AutoFitColumns();
或
worksheet.Column(1).AutoFit();
原因例外:
"System.Drawing is not supported on this platform."
系统。绘图组件依赖于GDI和Windows特定的库,这些库必须由另一个解决方案取代。
必须使用worksheet.Column(1).AutoFit(0);
AutoFit()不起作用
您需要计算宽度。库中没有自动调整大小的函数可以按您的预期工作。
Autofitcolumn不适用于换行文本和带公式的单元格。
查看http://epplus.codeplex.com/discussions/218294?ProjectName=epplus,查看如何解决这个问题的示例。
我用了这个,效果很好。
Dim objExcel As New ExcelPackage
Dim Sheet As ExcelWorksheet = objExcel.Workbook.Worksheets.Add("SheetName")
Sheet.Cells("B1:BN").AutoFitColumns()