#region 设置自适应宽度(支持中文)
/// <summary>
/// 设置自适应宽度(支持中文)
/// </summary>
/// <param name="sheet">对象页</param>
/// <param name="columnCount">列总数</param>
/// <returns></returns>
public static ISheet AutoSetWidth(ISheet sheet, int columnCount)
{
//获取当前列的宽度,然后对比本列的长度,取最大值
for (int columnNum = 0; columnNum <= columnCount; columnNum++)
{
//sheet.SetColumnWidth(columnNum, 256);
int columnWidth = sheet.GetColumnWidth(columnNum) / 256;
for (int rowNum = 1; rowNum <= sheet.LastRowNum; rowNum++)
{
IRow currentRow;
//当前行未被使用过
if (sheet.GetRow(rowNum) == null)
{
currentRow = sheet.CreateRow(rowNum);
}
else
{
currentRow = sheet.GetRow(rowNum);
}
if (currentRow.GetCell(columnNum) != null)
{
ICell currentCell = currentRow.GetCell(columnNum);
int length = Encoding.Default.GetBytes(currentCell.ToString()).Length;
if (columnWidth < length)
{
columnWidth = length + 3; //+3为了美观
}
}
}
if (columnWidth > 255)
columnWidth = 254;
sheet.SetColumnWidth(columnNum, columnWidth * 256);
}
return sheet;
}
#endregion
上面代码是设置表格自适应宽度,
解决这个问题只用设置一下相应列的宽度(宽度不可超过255,不会影响内容)即可,当然调用上面这个方法也行。
sheet.SetColumnWidth(columnNum, columnWidth * 256);。
版权声明:本文为qq_25086397原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。