San*_*osh 9 ms-office openxml excel-2010 openxml-sdk
有人可以帮我理解MS Excel中的共享字符串吗?我试图理解使用一些博客,但无法完全了解.每个人都在解释如何使用Open XML访问共享字符串以及存储共享字符串的位置(作为sharedstrings.xml).使用API访问很好.但,
我试过跟随.
Vin*_*Tan 12
共享字符串基本上是节省空间的机制.至于你的问题:
A1.您无法使用Excel用户界面手动创建共享字符串.这是因为Excel默认情况下始终将任何文本存储为共享字符串.
A2.如上所述,这是一种节省空间的机制.Excel 2007/2010/2013使用Open XML格式,它基本上是一堆压缩在一起的XML文件.它也可能是为了便于参考.您只需要引用一个索引,就像引用一个字符串数组的索引一样.(但XML本质上是冗长的,所以我怀疑它是出于节省空间的目的).
假设您在"FirstSheet"表格的单元格A1中有文本"This is a long long string".假设您在工作表"SecondSheet"的单元格B7中也有相同的文本.Excel将共享字符串表中的"这是一个非常长的文本"存储为一个条目,例如索引5.在"FirstSheet"单元格A1中,Open XML SDK类Cell将仅包含"5"作为CellValue.在"SecondSheet"单元格B7中,SDK类Cell也将包含"5".
基本上,CellValue只保存共享字符串表的索引.这就是你节省空间的方法.假设文本在工作表中以及不同的工作表中重复.
A3.如果您了解如何使其工作,请转到共享字符串.如果没有,只需在Cell类中为CellValue设置实际文本(Cell.DataType为CellValues.String而不是CellValues.SharedString).