【发布时间】:2023-04-01 19:55:01
【问题描述】:
我正在使用 Microsoft.Office.Interop.Excel 从 C# 创建一个 Excel 工作表,但我无法按照用户想要的方式获取页脚。
1) 如何将页脚文本以粗体显示? 2)如何将页码放在页脚中? (将@"Page @[Page]" 作为文本放入是行不通的。)
可能吗?不可能?
【问题讨论】:
标签: excel interop format footer
我正在使用 Microsoft.Office.Interop.Excel 从 C# 创建一个 Excel 工作表,但我无法按照用户想要的方式获取页脚。
1) 如何将页脚文本以粗体显示? 2)如何将页码放在页脚中? (将@"Page @[Page]" 作为文本放入是行不通的。)
可能吗?不可能?
【问题讨论】:
标签: excel interop format footer
以下代码来自 SpreadsheetGear for .NET 帮助并与 Excel 兼容:
* 出现在任何文本或非字体代码之后的字体代码将被 SpreadsheetGear 的打印引擎忽略。
【讨论】:
&A - Seite &P von &N,你最终会得到类似# - Seite /PATH/TO/ von FILENAME的东西facepalm所以如果你最终在这里,你必须使用&B - Seite &S von &A来代替
1) worksheet.PageSetup.LeftFooter = "&B Bold text &B"
2) worksheet.PageSetup.CenterFooter = "Page &P"
提示 - 打开 Excel 并通过 UI 设置所需的页脚,记录您执行的操作的宏。然后打开 VBA 编辑器。生成的 VBA 将为您提供有关如何通过 API 实现相同目标的线索。在自动化 Excel 时,此技巧可用于许多场景。
【讨论】:
没有看到提到这个; &B &I 和类似代码也可以关闭,类似于 html 代码。例如:
PageSetup.LeftHeader = "&B&IBOLDITALIC&I BOLD&B NORMAL";
给予:
粗体 粗体正常
【讨论】:
Sheets(1).PageSetup.CenterFooter = "&""Arial,Bold""This is bold &Bbut this isn't"
在元级别上,您可以通过录制宏并查看它的作用来发现这类事情。例如,要进行此设置,我录制了宏并将其取出:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 30/06/2009 by bloggsj
'
'
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = "&""Arial,Bold""Page &P of &N" '<== Et. Voila!
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.75)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
End Sub
录制的宏有很多垃圾,但我们可以看到 (Et. Voila) Excel 是如何做到的。从这个可以弄清楚如何自己做。
【讨论】: