问题描述
问题
我正在构建一个 Excel 文件,Description
列的输入来自一个基本的 <textarea>
标记并且可以包含基本的 HTML:
-
<p>
段 - 粗体 -
<strong>
个元素 - 斜体 -
<em>
- 下划线 -
<u>
- 罢工 -
<s>
- 换行 -
<br>
我想在 Excel 单元格中显示/渲染(如果可能的话)HTML。示例:
图书馆/掘金
我目前正在使用 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 (将#修改为@)