2013-02-04 69 views
1

我需要读取excel中单元格中可用的格式信息。 Excel文件可能包含一个文本类似“某些示例文本”的单元格。每个单词都会有不同的格式信息。就像单词“某些”可能是粗体的,并具有不同的字体颜色和大小。下一个词可能有不同的一个。如何读取excel单元格格式(.XLS和.XLSX)

我们可以读取单个单元格值的单个格式设置信息吗?如果是的话,请让我知道如何去做。

我曾经使用NPOI和OpenXML SDK 2.5,没有运气。不希望使用excel interop,因为这将在服务器中处理。

+0

是的,这是在Windows平台上。我正在使用.NET 4.0 –

回答

1

你说的是从小区读取富文本值。它将得到NPOI 2.0最终版本的支持。发布将在第一季度发生,2014年

2

以下是对您的问题的完整“黑客答案”。

我做了这样的单细胞小Excel文件:

screen shot of spreadsheet

我保存的文件,并关闭它。接下来,我将文件的扩展名从.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 

通过阅读本文件,您将能够重新构建格式化的所有字符串。必须有一个更好的办法...