2013-06-27 9 views
7

MS Excelの共有文字列の理解に役立つ人はいますか?私はいくつかのブログを使って理解しようとしましたが、完全なアイデアは得られませんでした。誰もがOpen XMLを使用して共有文字列にアクセスする方法と、共有文字列が格納されている場所(sharedstrings.xml)を説明しています。 APIを使用したアクセスは問題ありません。しかし、Excel 2010の共有文字列

  1. Excelで共有文字列を作成する方法。 (APIを使用せずにEXCEL 2010で手動で作成する)
  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は、基本的に一緒に圧縮されたXMLファイルの束であるOpen XML形式を使用します。また、参照の容易さのためかもしれません。文字列の配列のインデックスを参照するのと同じように、インデックスを参照するだけでよいのです。 (しかし、XMLは本質的に冗長なので、スペース節約のためだと思われます)。

シート「FirstSheet」のセルA1に「これは非常に長い文字列です」というテキストがあるとします。シート「SecondSheet」のセルB7にも同じテキストがあるとします。 Excelは、共有ストリングテーブルの「これは非常に長いテキストです」を1つのエントリ、たとえばインデックス5として格納します。「FirstSheet」セルA1では、Open XML SDKクラスのCellにCellValueとして「5」が含まれます。 "SecondSheet"セルB7には、SDKクラスのCellにも "5"が含まれます。

基本的に、CellValueは共有文字列テーブルのインデックスのみを保持します。これはスペースを節約する方法です。テキストは、ワークシート内だけでなく、異なるワークシート間でも複製されていることが前提です。

A3。共有文字列を使用する方法を理解している場合は、共有文字列を参照してください。そうでない場合は、CellValueのCellクラスの実際のテキスト(CellValues.SharedStringではなくCellValues.StringとしてCell.DataType)を設定します。

+0

優秀!!!とった。これは私が探していたものです。良いアイデアを得ました。あなたの説明のために1トンありがとう – Santhosh

関連する問題