Как уже отмечалось в комментариях, вам придется написать собственное преобразование для преобразования HTML разметки в разметку SpreadsheetML. Например, давайте посмотрим на следующий текст.
Это полужирный и itali c текст.
Представление 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 и, в частности, Shared String Table (* sst
элемент), в которой вы будете преобразовывать преобразованную разметку (как одну или несколько * 1019). * elements).
Преобразование лучше всего реализовать как чисто функциональное преобразование. Взгляните на класс XmlTransformationTests для примера, который делает нечто подобное. Он преобразует HTML -подобный XML в WordprocessingML.