2013-06-27 61 views
7

有人可以幫助我理解MS Excel中的共享字符串嗎?我試圖理解使用一些博客,但不能得到完整的想法。每個人都在解釋如何使用Open XML訪問共享字符串以及共享字符串存儲的位置(如sharedstrings.xml)。使用API​​訪問很好。但是,Excel 2010中的共享字符串

  1. 如何在Excel中創建共享的字符串。 (在EXCEL 2010中手動創建,不使用API​​)
  2. 共享字符串的確切需求是什麼?
  3. 在哪些情況下我可以使用共享字符串?

我試過了。

http://www.sadev.co.za/content/reading-and-writing-excel-2007-or-excel-2010-c-part-iii-shared-strings

http://msdn.microsoft.com/en-us/library/gg278314.aspx

回答

10

共用字符串基本上是一個節省空間的機制。至於你的問題:

A1。您無法使用Excel用戶界面手動創建共享字符串。這是因爲默認情況下Excel總是將任何文本存儲爲共享字符串。

A2。如前所述,這是一個節省空間的機制。 Excel 2007/2010/2013使用Open XML格式,基本上是將一堆XML文件壓縮在一起。它也可能是爲了便於參考。您只需引用一個索引,就像引用一個字符串數組的索引一樣。 (但XML本質上是冗長的,所以我懷疑這是出於節省空間的目的)。

比方說,在表格「FirstSheet」的單元格A1中有文本「這是一個很長的字符串」。假設您還在單張「SecondSheet」的單元格B7中具有相同的文本。 Excel將共享字符串表中的「這是一個非常長的文本」存儲爲一個條目,例如索引5.在「FirstSheet」單元格A1中,Open XML SDK類Cell將僅包含「5」作爲CellValue。在「SecondSheet」單元格B7中,SDK類Cell也將包含「5」。

基本上,CellValue只包含共享字符串表的索引。這是如何節省空間。假設是文本在工作表內以及在不同的工作表中重複。

A3。如果您瞭解如何使其工作,請轉到共享字符串。如果沒有,只需將CellValue的Cell類中的實際文本(Cell.DataType設置爲CellValues.String而不是CellValues.SharedString)即可。

+0

優秀!!!得到它了。這就是我一直在尋找的東西。有好主意。謝謝你的解釋 – Santhosh