【问题标题】:Shared Strings in Excel 2010Excel 2010 中的共享字符串
【发布时间】:2013-06-27 07:24:50
【问题描述】:

有人可以帮助我理解 MS Excel 中的共享字符串吗?我尝试使用一些博客来理解,但无法获得完整的想法。每个人都在解释如何使用 Open XML 访问共享字符串以及共享字符串的存储位置(如sharedStrings.xml)。使用 API 访问很好。但是,

  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

【问题讨论】:

    标签: ms-office excel-2010 openxml openxml-sdk


    【解决方案1】:

    共享字符串基本上是一种节省空间的机制。至于你的问题:

    A1。您不能使用 Excel 用户界面手动创建共享字符串。这是因为默认情况下 Excel 始终将任何文本存储为共享字符串。

    A2。如前所述,这是一种节省空间的机制。 Excel 2007/2010/2013 使用 Open XML 格式,基本上是一堆压缩在一起的 XML 文件。也可能是为了便于参考。你只需要引用一个索引,就像你引用一个字符串数组的索引一样。 (但 XML 本质上是冗长的,所以我怀疑它是为了节省空间。

    假设您在工作表“FirstSheet”的单元格 A1 中有文本“这是一个非常长的字符串”。假设您在工作表“SecondSheet”的单元格 B7 中也有相同的文本。 Excel 将“This is a very long text”作为一个条目存储在共享字符串表中,例如索引 5。在“FirstSheet”单元格 A1 中,Open XML SDK 类 Cell 将仅包含“5”作为 CellValue。在“SecondSheet”单元格 B7 中,SDK 类 Cell 也将包含“5”。

    基本上,CellValue 只保存共享字符串表的索引。这就是您节省空间的方式。假设文本在工作表内以及不同工作表之间重复。

    A3。如果您了解如何使其工作,请使用共享字符串。如果没有,只需在 Cell 类中为 CellValue 设置实际文本(Cell.DataType 为 CellValues.String 而不是 CellValues.SharedString)。

    【讨论】:

    • 优秀!!!知道了。这就是我一直在寻找的。有个好主意。非常感谢您的解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2011-01-06
    相关资源
    最近更新 更多