public static bool DataToExecl(DataTable dtSource, string filePath)
        {
            IWorkbook wk = new HSSFWorkbook();
            ISheet sheet = (NPOI.HSSF.UserModel.HSSFSheet)wk.CreateSheet("元数据");
            for (int i = 0; i < dtSource.Rows.Count; i++)
            {
                IRow newrow = sheet.CreateRow(i);
                for (int j = 0; j < dtSource.Columns.Count; j++)
                {
                    ICell cell = newrow.CreateCell(j);
                    if (dtSource.Rows[i][j] != null && !string.IsNullOrEmpty(dtSource.Rows[i][j].ToString()))
                    {
                        cell.SetCellValue(dtSource.Rows[i][j].ToString());
                    }
                }
            }
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }
            FileStream fs = File.Create(filePath);                    
            wk.Write(fs);
            fs.Close();
            return true;
        }

解决方案 »

  1.   

    需要先知道你用什么方法转成excel的
      

  2.   


    转换的方法,但是没有对生成的Excel表列宽进行自动调整这部分的代码实现求大神
      

  3.   

    目测你用的是NPOI?
    填充之后,重新按列循环,执行
    sheet.AutoSizeColumn(i);
      

  4.   

    还有据说NPOI 1.5的版本不支持中文动态计算
    2.0以上的版本是好用的