通过给定的 HTML 输入设置 Excel 单元格的样式 - 导出

问题描述

问题

我正在构建一个 Excel 文件Description 列的输入来自一个基本的 <textarea> 标记并且可以包含基本的 HTML:

  • <p>
  • 粗体 - <strong> 个元素
  • 斜体 - <em>
  • 下划线 - <u>
  • 罢工 - <s>
  • 换行 - <br>

我想在 Excel 单元格中显示/渲染(如果可能的话)HTML。示例:

Excel picture,description column,HTML input

图书馆/掘金

我目前正在使用 NPOI nugget 软件包,版本 2.5.3。我不希望这个问题是特定于图书馆/金块的。如果有可以完成这项工作的 Excel 金块,我愿意免费或付费更改金块包。我查看了 IRONXL for .NET,但找不到用于设置 Excel 工作表样式的选项。

我的代码

using NPOI.SS.usermodel;
using NPOI.XSSF.usermodel;

var cellStyle = workbook.CreateCellStyle();
cellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("text");

foreach (DaTarow dataTableRow in dataTable.Rows)
{

    IRow row = excelSheet.CreateRow(dataTable.Rows.IndexOf(dataTableRow) + 1);

    for (int index = 0; index < dataTable.Columns.Count; index++)
    {
        var rowData = dataTableRow[index].ToString();

        var cell = row.CreateCell(index);
        cell.SetCellType(CellType.String);
        cell.CellStyle = cellStyle;
        cell.SetCellValue(rowData);
    }
}

rowData一个包含 HTML 的字符串变量。示例值:

<p><strong>Hello bold</strong></p><p><em>Italic</em></p><p><u>Underline</u></p><p><s><u>strike</u></s></p><p>Plains</p>

格式化:

<p><strong>Hello bold</strong></p>
<p><em>Italic</em></p>
<p><u>Underline</u></p>
<p><s><u>strike</u></s></p>
<p>Plains</p>

注意:我尝试创建一个匹配每个段落(<p>.*?<\/p>)的正则表达式,然后使用另一个匹配的正则表达式检查每个段落元素的粗体、斜体等给定样式没有更多匹配项。我已经成功地将字符串拆分为其回顾部分,但问题是在 NPOI excel 库中,只有一个选项可以全局设置 Excel 单元格的样式。例如,整个单元格将是粗体或斜体,而我希望单元格的某些部分是粗体、斜体、删除线等。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...