1

OPEN XML SDK 2.0を使用するように指示され、この問題が発生しました。次の図のように、セル内の単一のCellValueに異なるスタイルを設定することは可能ですか。

ここに画像の説明を入力してください

A:プレーンテキスト

B:太字で下線付き

注:私は単一のセルに両方が必要です:)

4

1 に答える 1

3

はい、それは可能です。1つの方法は、に挿入される値をフォーマットすることですSharedStringTable。このスニペットは、上記の例を作成します。

        // Creates an SharedStringItem instance and adds its children.
        public SharedStringItem GenerateSharedStringItem()
        {
            SharedStringItem sharedStringItem1 = new SharedStringItem();

            Run run1 = new Run();

            RunProperties runProperties1 = new RunProperties();
            Bold bold1 = new Bold();
            Underline underline1 = new Underline();
            FontSize fontSize1 = new FontSize(){ Val = 11D };
            Color color1 = new Color(){ Theme = (UInt32Value)1U };
            RunFont runFont1 = new RunFont(){ Val = "Calibri" };
            FontFamily fontFamily1 = new FontFamily(){ Val = 2 };
            FontScheme fontScheme1 = new FontScheme(){ Val = FontSchemeValues.Minor };

            runProperties1.Append(bold1);
            runProperties1.Append(underline1);
            runProperties1.Append(fontSize1);
            runProperties1.Append(color1);
            runProperties1.Append(runFont1);
            runProperties1.Append(fontFamily1);
            runProperties1.Append(fontScheme1);
            Text text1 = new Text();
            text1.Text = "Project Name:";

            run1.Append(runProperties1);
            run1.Append(text1);

            Run run2 = new Run();

            RunProperties runProperties2 = new RunProperties();
            FontSize fontSize2 = new FontSize(){ Val = 11D };
            Color color2 = new Color(){ Theme = (UInt32Value)1U };
            RunFont runFont2 = new RunFont(){ Val = "Calibri" };
            FontFamily fontFamily2 = new FontFamily(){ Val = 2 };
            FontScheme fontScheme2 = new FontScheme(){ Val = FontSchemeValues.Minor };

            runProperties2.Append(fontSize2);
            runProperties2.Append(color2);
            runProperties2.Append(runFont2);
            runProperties2.Append(fontFamily2);
            runProperties2.Append(fontScheme2);
            Text text2 = new Text(){ Space = SpaceProcessingModeValues.Preserve };
            text2.Text = " ALLAN";

            run2.Append(runProperties2);
            run2.Append(text2);

            sharedStringItem1.Append(run1);
            sharedStringItem1.Append(run2);
            return sharedStringItem1;
        }

これをに挿入してから、これが挿入さSharedStringTableれた場所のインデックスになるようにセルの値を設定できます。SharedStringTable

に定義されている可能性のある、含めるのを忘れた他の参照がある可能性がありますStylesPart。この例を空白のExcelドキュメントで作成してから、Open XMLProductivityToolを使用してXMLを確認することをお勧めします。このツールは、上記で提供したコードも提供します。それはあなたに次にどこへ行くべきかについての一般的な方向性を与えるはずです。

于 2012-01-24T11:34:58.583 に答える