簡體   English   中英

如何在 C# 中使用 OpenXML 將 RTF/HTML 放入 Excel 單元格

[英]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: &quot;Lucida Console&quot;">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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM