【发布时间】: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 打开它,在 这段代码在 x:headerFooter(OddFooter) 下一级: 现在我当然需要在某处附加页脚信息,这就是我被卡住的地方。在 x:worksheet(Worksheet) 我看到这行代码: 这看起来很简单,但是当我回顾应用程序代码时,我发现没有要附加的工作表对象。我以为我很接近以下代码行: 但这没有产生任何结果。在应用程序中,我看到了一个 SpreadsheetDocument 对象和对 OpenXMLParts 的引用......我需要获取一个电子表格部件来附加到吗?还是我需要对电子表格与工作表对象采取不同的方法?我需要具体化当前工作表然后追加吗? 我觉得这是一个简单的解决方案,但正如我所说,我仍在学习 SDK。 谢谢! // 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;
}
// 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;
}
worksheet1.Append(headerFooter1);
spreadsheet.WorkbookPart.Workbook.Append(headerFooter1);
【问题讨论】:
标签: excel c#-4.0 openxml openxml-sdk