【问题标题】:Export HTML table to Excel file using C# (WinForms .NET 5)使用 C# (WinForms .NET 5) 将 HTML 表格导出到 Excel 文件
【发布时间】:2023-03-11 17:25:02
【问题描述】:

我需要将带有样式的 HTML 表格转换为 .XLSX 文件。

我设法使用GemBox.Spreadsheet 的免费版本做到了这一点,现在我不介意免费版本的限制,但问题是当我打开 Excel 文件时数字被视为文本。 如果不手动打开 Excel 文件并自己转换它们,是否有任何解决方案?甚至是 GemBox 库的免费替代品?

File.WriteAllText("Table.html", html);
ExcelFile.Load("Table.html", LoadOptions.HtmlDefault).Save("Test.xlsx");

我的 HTML 看起来像这样

<html>
  <body>
    <center>
      <table border="1" cellpadding="0" cellspacing="0">
        <tr>
          <td>Crimson Witch</td>
          <td>HP</td>
          <td>ATK</td>
          <td>DEF</td>
        </tr>
        <tr>
          <td>Flower</td>
          <td>10</td>
          <td style="background-color: #808080"></td>
          <td style="background-color: #808080"></td>
        </tr>
        <tr>
          <td>Plume</td>
          <td style="background-color: #808080"></td>
          <td>10</td>
          <td style="background-color: #808080"></td>
        </tr>
      </table>
    </center>
  </body>
</html>

解决方案:

File.WriteAllText("Table.html", html.Replace("<center>", string.Empty).Replace("</center>", string.Empty));
ExcelFile.Load("Table.html", LoadOptions.HtmlDefault).Save("Test.xlsx");

【问题讨论】:

  • 如果您要提及您正在使用的工具,最好将其设为链接,以便人们可以尝试找出您所指的内容。无论如何,我不知道 GemBox.Spreadsheet 做了什么,但我会先查看原始 CSV 文件(你应该在此处发布)。如果该工具没有插入正确的数据,我会使用轻量级 HTML 解析器(例如我自己的 SoftCircuits.HtmlMonkey)并以这种方式提取表格列。
  • @JonathanWood 我没有任何 CSV 文件。你是说 XSLX 文件吗?
  • 有几个公共领域的 Excel 电子表格库,例如无处不在的 NPOI,它们允许您进行单元级访问以做任何您想做的事情。
  • @Yox:抱歉,您正在直接创建 XSLX 文件。如果我要这样做,我会用我的 HTML 解析器解析 HTML,然后将其写入 CSV 文件,或者使用 Excel 构建器库(我也有一个开源的其中一个 - 以及一个CSV 编写器)来创建 Excel 文件。这是您可以对流程进行微调控制的唯一方法。

标签: c# html winforms export-to-excel gembox-spreadsheet


【解决方案1】:

出现问题是因为&lt;table&gt;&lt;center&gt; 内。

尝试删除 &lt;center&gt; 元素。

编辑:

此问题现已在当前最新的错误修复版本中得到解决: https://www.gemboxsoftware.com/spreadsheet/nightlybuilds/GBS47v1336.zip

在当前最新的 NuGet 包中:
Install-Package GemBox.Spreadsheet -Version 47.0.1336-hotfix

【讨论】:

  • 这解决了我的问题,谢谢。
猜你喜欢
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多