0

編集:元の投稿で省略した詳細があります。プログラムは、「.Open」コマンドの具体的なテンプレートではなく、テンプレート ストリームを使用しています。テンプレート ストリームは、次のコード ブロックで初期化されます。

public void Initialize(Stream templateStream)
{
    spreadsheet = SpreadsheetDocument.Open(templateStream, true);
}

私はまだこれを調査していますが、OpenXML で HeaderFooter オブジェクトにストリームを使用することの意味を知っている人はいますか?

私は OpenXML を初めて使用し、この大規模な SDK について何ができるかを読んで学習している最中です。OpenXML を使用して Excel スプレッドシートに情報を表示する C# MVC.NET プログラムを継承しましたが、すべて機能していますが、同じスプレッドシートにフッターを追加する必要があり、OpenXML でレンガの壁にぶつかっています。知識。

必要なフッター情報をスプレッドシートに入力し、Open XML SDK Productivity Tool で開いたところ、<.x:oddFooter(OddFooter) の下に次のコードが見つかりました。

 // Creates an OddFooter instance and adds its children.
        public OddFooter GenerateOddFooter()
        {
            OddFooter oddFooter1 = new OddFooter();
            oddFooter1.Text = "&L&\"Times New Roman,Regular\"Page &P of &N&C&\"Times New Roman,Regular\"Generated On: <Date/Time> Central&R&\"Times New Roman,Regular\"Report";
            return oddFooter1;
        }

そして、このコードは <>x:headerFooter(OddFooter) の下の 1 レベル上にあります。

// Creates an HeaderFooter instance and adds its children.
        public HeaderFooter GenerateHeaderFooter()
        {
            HeaderFooter headerFooter1 = new HeaderFooter();
            OddFooter oddFooter1 = new OddFooter();
            oddFooter1.Text = "&L&\"Times New Roman,Regular\"Page &P of &N&C&\"Times New Roman,Regular\"Generated On: <Date/Time> Central&R&\"Times New Roman,Regular\"Report";

            headerFooter1.Append(oddFooter1);
            return headerFooter1;
        }

もちろん、フッター情報をどこかに追加する必要がありますが、ここで立ち往生しています。<>x:worksheet(Worksheet) には、次のコード行が表示されます。

worksheet1.Append(headerFooter1);

これは簡単そうに見えましたが、アプリケーション コードを振り返ってみると、追加するワークシート オブジェクトが見つかりませんでした。次のコード行に近いと思いました。

spreadsheet.WorkbookPart.Workbook.Append(headerFooter1);

しかし、これは何ももたらしませんでした。アプリケーションで、SpreadsheetDocument オブジェクトと OpenXMLParts への参照が表示されます...追加するスプレッドシート パーツを取得する必要がありますか? または、スプレッドシートとワークシート オブジェクトで別のアプローチを取る必要がありますか? 現在のワークシートを具体化してから追加する必要がありますか?

これには簡単な解決策があると感じていますが、私が言ったように、私はまだ SDK を学んでいます。

ありがとうございました!

4

1 に答える 1

0

生産性ツールについて知らない方のために説明すると、このツールは SDK に含まれており、https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=5124からダウンロードできます。

私の 64 ビット マシンでは、ツールへのインストール パスは「C:\Program Files (x86)\Open XML SDK\V2.0\tool\OpenXmlSdkTool.exe」でした。

スプレッドシートに手動でフッターを追加し、ツールで開いて、フッターを含むスプレッドシート全体を作成するために必要な正確な C# を確認できるはずです。その後、自動的に追加されるスタイルなど、コードの不要な部分を削除できます。

于 2012-05-10T19:21:58.847 に答える