2013-02-04 95 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 

通過閱讀本文件,您將能夠重新構建格式化的所有字符串。必須有一個更好的辦法...