共有の文字列は、基本的には、省スペースのメカニズムです。あなたの質問について:
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)を設定します。
優秀!!!とった。これは私が探していたものです。良いアイデアを得ました。あなたの説明のために1トンありがとう – Santhosh