[英]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.