创建一个excel文件并自动扩展列宽

Posted

技术标签:

【中文标题】创建一个excel文件并自动扩展列宽【英文标题】:creating an excel file and automatically expanding column widths 【发布时间】:2012-04-05 09:42:59 【问题描述】:

我有一个普通的 html 表格:

<table>
<tr>hello</tr>
<tr>world</tr>
</table> 

我正在用它创建一个 XLS 文件:

string randomname = @"C:\attachmentsfolder\"  + System.IO.Path.GetRandomFileName() + ".xls";
System.IO.File.WriteAllText( randomname, message);

当我打开生成的 XLS 文件时,我需要手动展开列才能看到长数据。

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

【问题讨论】:

您的 HTML 无效,对于初学者来说,它永远不会起作用。 【参考方案1】:

您可以使用EPPlus(开源 .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);

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

您也可以使用第三方工具,例如Aspose.Cells 创建 Excel 文件。

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

【讨论】:

以上是关于创建一个excel文件并自动扩展列宽的主要内容,如果未能解决你的问题,请参考以下文章

Java 设置Excel自适应行高列宽

POI生成excel如何实现自动调整行高

POI生成excel如何实现自动调整行高

excel怎么设置自动换行和自动列宽

在排除某些单元格/行时自动调整 Excel 中的列宽

怎么设置excel的行高和行宽