C# “如何设置Excel”;印刷标题“;使用OpenXML
如何使用OpenXML设置电子表格的“打印标题”属性,以便在每个打印页面的顶部显示一行C# “如何设置Excel”;印刷标题“;使用OpenXML,c#,excel,openxml,openxml-sdk,C#,Excel,Openxml,Openxml Sdk,如何使用OpenXML设置电子表格的“打印标题”属性,以便在每个打印页面的顶部显示一行 该属性直接保存在SpreadsheetPrintingParts对象中,但是,到目前为止,它似乎还没有完全集成到OpenXML中,需要将base64字符串传递到变量中。()此字符串的内容似乎绑定到打开文件的机器上,这对我的实现不起作用-我无法通过电子表格打印部件.FeedData()创建未损坏的文件 相反,我发现给行定义名称“Print_Titles”的语句具有相同的效果。然后,我能够使用以下代码通过Ope
该属性直接保存在
SpreadsheetPrintingParts
对象中,但是,到目前为止,它似乎还没有完全集成到OpenXML中,需要将base64字符串传递到变量中。()此字符串的内容似乎绑定到打开文件的机器上,这对我的实现不起作用-我无法通过电子表格打印部件.FeedData()
创建未损坏的文件
相反,我发现给行定义名称“Print_Titles”的语句具有相同的效果。然后,我能够使用以下代码通过OpenXML创建定义的名称:
public void SetPrintTitleRows(int startRowIndex, int? endRowIndex = null)
{
var localSheetId = _localsheetId++; //LocalSheetIds are 0-indexed.
var definedName = new DefinedName
{
Name = "_xlnm.Print_Titles",
LocalSheetId = localSheetId,
Text = String.Format("\'{0}\'!${1}:${2}", _sheetName, startRowIndex, endRowIndex ?? startRowIndex)
};
if (_workbookPart.Workbook.DefinedNames == null)
{
var definedNamesCol = new DefinedNames();
_workbookPart.Workbook.Append(definedNamesCol);
}
_workbookPart.Workbook.DefinedNames.Append(definedName);
}
注意事项:
DefinedName.LocalSheetId
为零索引,而Sheet.Id
为1索引DefinedName
每个工作簿一次,但可以包含多个不同工作表的DefinedName
对象该属性直接保存在
SpreadsheetPrintingParts
对象中,但是,到目前为止,它似乎还没有完全集成到OpenXML中,需要将base64字符串传递到变量中。()此字符串的内容似乎绑定到打开文件的机器上,这对我的实现不起作用-我无法通过电子表格打印部件.FeedData()
创建未损坏的文件
相反,我发现给行定义名称“Print_Titles”的语句具有相同的效果。然后,我能够使用以下代码通过OpenXML创建定义的名称:
public void SetPrintTitleRows(int startRowIndex, int? endRowIndex = null)
{
var localSheetId = _localsheetId++; //LocalSheetIds are 0-indexed.
var definedName = new DefinedName
{
Name = "_xlnm.Print_Titles",
LocalSheetId = localSheetId,
Text = String.Format("\'{0}\'!${1}:${2}", _sheetName, startRowIndex, endRowIndex ?? startRowIndex)
};
if (_workbookPart.Workbook.DefinedNames == null)
{
var definedNamesCol = new DefinedNames();
_workbookPart.Workbook.Append(definedNamesCol);
}
_workbookPart.Workbook.DefinedNames.Append(definedName);
}
注意事项:
DefinedName.LocalSheetId
为零索引,而Sheet.Id
为1索引DefinedName
每个工作簿一次,但可以包含多个不同工作表的DefinedName
对象