Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “如何设置Excel”;印刷标题“;使用OpenXML_C#_Excel_Openxml_Openxml Sdk - Fatal编程技术网

C# “如何设置Excel”;印刷标题“;使用OpenXML

C# “如何设置Excel”;印刷标题“;使用OpenXML,c#,excel,openxml,openxml-sdk,C#,Excel,Openxml,Openxml Sdk,如何使用OpenXML设置电子表格的“打印标题”属性,以便在每个打印页面的顶部显示一行 该属性直接保存在SpreadsheetPrintingParts对象中,但是,到目前为止,它似乎还没有完全集成到OpenXML中,需要将base64字符串传递到变量中。()此字符串的内容似乎绑定到打开文件的机器上,这对我的实现不起作用-我无法通过电子表格打印部件.FeedData()创建未损坏的文件 相反,我发现给行定义名称“Print_Titles”的语句具有相同的效果。然后,我能够使用以下代码通过Ope

如何使用OpenXML设置电子表格的“打印标题”属性,以便在每个打印页面的顶部显示一行


该属性直接保存在
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
    对象