IWorkbook workbook = new HSSFWorkbook; C#设置自动调整列宽为数据最长的宽度
在C#中,使用NPOI库来操作Excel文件。要设置自动调整列宽为数据最长的宽度,可以按照以下步骤进行操作:
-
首先,确保已经引用了NPOI库。可以通过NuGet包管理器安装NPOI库。
-
创建一个工作簿对象,使用HSSFWorkbook类。
IWorkbook workbook = new HSSFWorkbook();
- 创建一个工作表对象。
ISheet sheet = workbook.CreateSheet("Sheet1");
- 插入数据到工作表中。
// 示例数据
string[] data = new string[] { "Data1", "Some longer data", "Even longer data", "Some really really long data" };
// 插入数据到工作表中的单元格
for (int i = 0; i < data.Length; i++)
{
IRow row = sheet.CreateRow(i);
ICell cell = row.CreateCell(0);
cell.SetCellValue(data[i]);
}
- 设置自动调整列宽为数据最长的宽度。
// 遍历每一列,获取最长的数据宽度
for (int i = 0; i < sheet.GetRow(0).LastCellNum; i++)
{
int maxLength = 0;
for (int j = 0; j < sheet.LastRowNum; j++)
{
IRow row = sheet.GetRow(j);
ICell cell = row.GetCell(i);
if (cell != null && cell.CellType == CellType.String)
{
int length = Encoding.UTF8.GetBytes(cell.StringCellValue).Length;
maxLength = Math.Max(maxLength, length);
}
}
// 设置列宽为最长数据的宽度
sheet.SetColumnWidth(i, (maxLength + 1) * 256);
}
- 最后,保存工作簿到文件或内存流中。
using (FileStream fs = new FileStream("output.xls", FileMode.Create))
{
workbook.Write(fs);
}
以上代码将创建一个Excel文件,并在第一个工作表中插入数据。然后,通过遍历每一列,获取最长的数据宽度,并将列宽设置为最长数据的宽度。最后,将工作簿保存到文件中
原文地址: http://www.cveoy.top/t/topic/hHdb 著作权归作者所有。请勿转载和采集!