[英]How to put RTF/HTML into Excel cell using OpenXML in C#
我需要从富文本编辑器中获取 HTML 并将其放入 Excel 工作表中。 要求是 html 被呈现并且看起来与它在富文本编辑器中所做的一样。
我们使用 OpenXML 来满足我们的 Excel 需求,但我似乎找不到将 HTML 放入单元格的方法。 我可以设置值,但只显示字符串。
例如,我需要在单元格中呈现此 HTML:
<p style="text-align: center"><strong>This is a test!</strong></p><p><s>a</s></p><p><br></p><p><u style="color: rgb(32, 43, 250)">test</u></p><ul><li>test<ul><li><span style="background-color: rgb(156, 224, 29)">test</span></li></ul></li></ul><p><br></p><p><em style="font-size: 24pt; font-family: "Lucida Console"">d</em></p>
有没有办法做到这一点,或者我正在寻找无法完成的事情?
如评论中所述,您必须编写自己的转换以将 HTML 标记转换为 SpreadsheetML 标记。 例如,让我们看一下下面的文字。
这是粗体和斜体文本。
上述示例文本的 HTML 表示非常简单:
<p>This is <strong>bold</strong> and <em>italic</em> text.</p>
您需要将上面的 HTML 标记转换为以下 SpreadsheetML 标记(准确地说是一个si
元素):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="1" uniqueCount="1">
<si>
<r>
<t xml:space="preserve">This is </t>
</r>
<r>
<rPr>
<b/>
<sz val="11"/>
<color theme="1"/>
<rFont val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</rPr>
<t>bold</t>
</r>
<r>
<rPr>
<sz val="11"/>
<color theme="1"/>
<rFont val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</rPr>
<t xml:space="preserve"> and </t>
</r>
<r>
<rPr>
<i/>
<sz val="11"/>
<color theme="1"/>
<rFont val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</rPr>
<t>italic</t>
</r>
<r>
<rPr>
<sz val="11"/>
<color theme="1"/>
<rFont val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</rPr>
<t xml:space="preserve"> text.</t>
</r>
</si>
</sst>
为此,您确实需要了解 SpreadsheetML 标记,特别是共享字符串表( sst
元素),您可以在其中呈现转换后的标记(作为一个或多个si
元素)。
转换最好作为纯函数转换来实现。 查看XmlTransformationTests类以获取执行类似操作的示例。 它将类似 HTML 的 XML 转换为 WordprocessingML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.