C# 创建excel文件并自动扩展列宽

C# 创建excel文件并自动扩展列宽,c#,html,winforms,excel,C#,Html,Winforms,Excel,我有一个常规html表: <table> <tr>hello</tr> <tr>world</tr> </table> 打开生成的XLS文件时,需要手动展开列以查看长数据 我的问题是:如何生成此XLS文件,以使列的大小已正确调整?在Excel VBA中,您可以使用Rng.columns.AutoFit实现所需的效果。我相信C#等价物是Rng.Columns.AutoFit() 但是,我同意Diodeus的观点,您必须首先

我有一个常规html表:

<table>
<tr>hello</tr>
<tr>world</tr>
</table> 
打开生成的XLS文件时,需要手动展开列以查看长数据


我的问题是:如何生成此XLS文件,以使列的大小已正确调整?

在Excel VBA中,您可以使用
Rng.columns.AutoFit实现所需的效果。我相信C#等价物是
Rng.Columns.AutoFit()


但是,我同意Diodeus的观点,您必须首先修复html。

您还可以使用第三方工具(如Aspose.Cells)来创建Excel文件


我已经在很多项目中成功地使用了它。它提供您需要的自动调整功能

您可以使用(开源.NET Excel 2007+库)轻松完成此操作,并且您将拥有一个有效的Excel文件,下面是示例代码:

public static void FitAndSaveToExcel(FileInfo excelFile, string sheetName)
{
  ExcelPackage pack = new ExcelPackage();
  ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName);
  ws.Cells[1, 1].Value = "Some Long text that needs fitting!";
  ws.Cells[1, 2].Value = "Short one";
  ws.Column(1).AutoFit();
  pack.SaveAs(excelFile);
}

首先,你的HTML是无效的,所以它永远不会工作。
public static void FitAndSaveToExcel(FileInfo excelFile, string sheetName)
{
  ExcelPackage pack = new ExcelPackage();
  ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName);
  ws.Cells[1, 1].Value = "Some Long text that needs fitting!";
  ws.Cells[1, 2].Value = "Short one";
  ws.Column(1).AutoFit();
  pack.SaveAs(excelFile);
}