我需要阅读excel中单元格中可用的格式信息。 excel文件可能包含一个文本格式为“Some sample text”的单元格。每个单词都有不同的格式信息。像“Some”这样的单词可能是粗体,并且具有不同的字体颜色和大小。下一个单词可能有不同的单词。
我们可以读取单个单元格值的单个格式信息吗?如果是,请告诉我如何做同样的事。
我曾经使用过NPOI和OpenXML SDK 2.5但没有运气。不希望使用excel互操作,因为这将在服务器中处理。
答案 0 :(得分:2)
这是对您的问题的完整“黑客答案”。
我用这样的单个单元格创建了一个小的Excel文件:
我保存了文件,然后将其关闭。接下来,我将文件的扩展名从.xlsx更改为.zip - 这允许您打开它并查看内容。在名为xl
的子文件夹中,您会找到一个名为“sharedStrings.xml”的文件,其中包含工作簿中的所有字符串及其在单元格中的格式。这是一个巨大的数组 - 这样做是为了在多个单元格中输入相同的值时,它只存储一次。通过这个文件来获取所有单元格中的所有字符串及其格式......
对于此特定单元格,sharedStrings.xml文件内容的开头如下:
<?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 </t>
</r>
<r>
<rPr>
<b/>
<sz val="11"/>
<color theme="1"/>
<rFont val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</rPr>
<t>cell</t>
</r>
<r>
<rPr>
<sz val="11"/>
<color theme="1"/>
... etc
通过阅读此文件,您将能够使用其格式重建所有字符串。必须有一个更好的方法......
答案 1 :(得分:1)
您正在谈论从Cell中读取Rich Text值。它将得到NPOI 2.0最终版本的支持。该版本将于2014年第一季度发布。