使用 C# (WinForms .NET 5) 将 HTML table 导出到 Excel 文件

Export HTML table to Excel file using C# (WinForms .NET 5)

我需要将具有样式的 HTML table 转换为 .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");

出现问题是因为 <table><center> 内。

尝试删除 <center> 元素。

编辑:

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

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