.NET EPPlus OpenXml – 在每一页重复Excel行

我试图在每个Excel页面上保留一行(标题字段)。 我正在使用EPPlus库中包含的OpenXML。

我试过下面这行代码:

myWorkSheet.PrinterSettings.RepeatRows = New ExcelAddress(String.Format("${0}:${0}", firstRowNummerExcel.ToString())) 

这不会对我造成错误或崩溃,但只是没有做任何特别的事情…

PrinterSettings对象似乎工作,执行下面的代码行工作:

 worksheetVertrokkenRunderen.PrinterSettings.ShowHeaders = true 

这让我觉得可能插入的ExcelAddress不正确?

我想我find了自己的答案,在Excel中设置一个循环的行,然后将该文档读入内存和额外的RepeatRows属性:显然,您必须添加工作表的名称以及…

 myWorkSheet.PrinterSettings.RepeatRows = New ExcelAddress(String.Format("'{1}'!${0}:${0}", firstRowNummerExcel, myWorkSheetName)) 

这工作:-)

目前在EPPlus中有一个错误,在同一时间设置RepeatColumns和RepeatRows会导致无效的引用被创build,并被Excel忽略。

解决方法是手动添加以下命名范围。 (这与EPPlus试图完成的完全一样。)

 worksheet.Names.AddFormula("_xlnm.Print_Titles", $"'{worksheet.Name}'!$A:$B,'{worksheet.Name}'!$1:$4");