在C#中,使用NPOI库来操作Excel文件。要设置自动调整列宽为数据最长的宽度,可以按照以下步骤进行操作:

  1. 首先,确保已经引用了NPOI库。可以通过NuGet包管理器安装NPOI库。

  2. 创建一个工作簿对象,使用HSSFWorkbook类。

IWorkbook workbook = new HSSFWorkbook();
  1. 创建一个工作表对象。
ISheet sheet = workbook.CreateSheet("Sheet1");
  1. 插入数据到工作表中。
// 示例数据
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]);
}
  1. 设置自动调整列宽为数据最长的宽度。
// 遍历每一列,获取最长的数据宽度
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);
}
  1. 最后,保存工作簿到文件或内存流中。
using (FileStream fs = new FileStream("output.xls", FileMode.Create))
{
    workbook.Write(fs);
}

以上代码将创建一个Excel文件,并在第一个工作表中插入数据。然后,通过遍历每一列,获取最长的数据宽度,并将列宽设置为最长数据的宽度。最后,将工作簿保存到文件中

IWorkbook workbook = new HSSFWorkbook; C#设置自动调整列宽为数据最长的宽度

原文地址: http://www.cveoy.top/t/topic/hHdb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录