Excel 互操作:设置页脚格式
题
我正在使用 Microsoft.Office.Interop.Excel 从 C# 创建 Excel 工作表,但无法按照用户想要的方式获取页脚。
1) 如何将页脚文本设置为粗体?2)如何将页码放在页脚中?(将@“Page @[Page]”作为文本放入不起作用。)
可能的?不可能?
解决方案
1)worksheet.PageSetup.LeftFooter = "&B Bold text &B"
2)worksheet.PageSetup.CenterFooter = "Page &P"
一个尖端 - 开放Excel和设置你经由UI所需要的页脚,记录您采取的动作的一个宏。然后打开VBA编辑器。生成的VBA会给你如何通过API acheive同样的事情的线索。这招可以在很多场合下使用自动化Excel时。
其他提示
以下代码来自 SpreadsheetGear for .NET 帮助,并且与 Excel 兼容:
- &P - 当前页码。
- &N - 总页数。
- &B - 使用粗体*。
- &I - 使用斜体字体*。
- &U - 使用下划线字体*。
- && - 人物。
- &D - 当前日期。
- &T - 当前时间。
- &F - 工作簿名称。
- &A - 工作表名称。
- &“FontName” - 使用指定的字体名称*。
- &N - 使用指定的字体大小*。
* 在任何文本或非字体代码之后出现的字体代码将被 SpreadsheetGear 的打印引擎忽略。
没有看到这提及;所述&B&I和类似的代码也可被关闭,类似于HTML代码。例如:
PageSetup.LeftHeader = "&B&IBOLDITALIC&I BOLD&B NORMAL";
给出:
的 BOLDITALIC 强> 粗体强>正常
在元级别,您可以通过从录制宏,看到它做什么发现这样的事情。例如,要做到这一点成立,我录制宏,并得到了这一点:
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。瞧的)Excel中是如何做的。从这个人能弄清楚如何做到这一点onesself。
不隶属于 StackOverflow