【问题标题】:Add a footer to an existing OpenXML spreadsheet向现有 OpenXML 电子表格添加页脚
【发布时间】:2012-05-10 19:16:01
【问题描述】:

编辑:我在原始帖子中遗漏了更多细节。该程序使用模板流而不是“.Open”命令的具体模板。模板流被这个代码块初始化:

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

我还在研究这个,但有谁知道在 OpenXML 中为 HeaderFooter 对象使用流的含义?

我是 OpenXML 的新手,并且仍在阅读和学习这个庞大的 SDK 的内容。我继承了一个 C# MVC.NET 程序,该程序使用 OpenXML 在 Excel 电子表格上显示信息,所有这些都可以正常工作,但我现在需要在同一个电子表格中添加页脚,而且我在我的 OpenXML 中遇到了一些砖墙知识。

我将我想要的页脚信息放入电子表格,用 Open XML SDK Productivity Tool 打开它,在

 // 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) 下一级:

// 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。

谢谢!

【问题讨论】:

    标签: excel c#-4.0 openxml openxml-sdk


    【解决方案1】:

    对于不了解生产力工具的人,它包含在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#。然后您可以删除代码中不需要的部分,例如自动添加的一些样式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多