【问题标题】:Excel Interop: Formatting FootersExcel 互操作:格式化页脚
【发布时间】:2023-04-01 19:55:01
【问题描述】:

我正在使用 Microsoft.Office.Interop.Excel 从 C# 创建一个 Excel 工作表,但我无法按照用户想要的方式获取页脚。

1) 如何将页脚文本以粗体显示? 2)如何将页码放在页脚中? (将@"Page @[Page]" 作为文本放入是行不通的。)

可能吗?不可能?

【问题讨论】:

    标签: excel interop format footer


    【解决方案1】:

    以下代码来自 SpreadsheetGear for .NET 帮助并与 Excel 兼容:

    • &P - 当前页码。
    • &N - 总页数。
    • &B - 使用粗体*。
    • &I - 使用斜体*。
    • &U - 使用下划线字体*。
    • && - '&' 字符。
    • &D - 当前日期。
    • &T - 当前时间。
    • &F - 工作簿名称。
    • &A - 工作表名称。
    • &"FontName" - 使用指定的字体名称*。
    • &N - 使用指定的字体大小*。

    * 出现在任何文本或非字体代码之后的字体代码将被 SpreadsheetGear 的打印引擎忽略。

    【讨论】:

    • 谢谢。我想了解 &T 和 &D!
    • 但你不得不说,他下面的代码来自“Excel”并且与SpreadsheetGear for .NET兼容
    • 某位天才将代码翻译成德文版的 Excel。所以如果你使用&A - Seite &P von &N,你最终会得到类似# - Seite /PATH/TO/ von FILENAME的东西facepalm所以如果你最终在这里,你必须使用&B - Seite &S von &A来代替
    【解决方案2】:

    1) worksheet.PageSetup.LeftFooter = "&B Bold text &B"

    2) worksheet.PageSetup.CenterFooter = "Page &P"

    提示 - 打开 Excel 并通过 UI 设置所需的页脚,记录您执行的操作的宏。然后打开 VBA 编辑器。生成的 VBA 将为您提供有关如何通过 API 实现相同目标的线索。在自动化 Excel 时,此技巧可用于许多场景。

    【讨论】:

    • 工作正常。根据下面关注的回答,似乎不需要遵循 &B。谢谢大家。
    【解决方案3】:

    没有看到提到这个; &B &I 和类似代码也可以关闭,类似于 html 代码。例如:

    PageSetup.LeftHeader = "&B&IBOLDITALIC&I BOLD&B NORMAL";
    

    给予:

    粗体 粗体正常

    【讨论】:

    • 另外,Bold 可以在字体名称设置中启动,稍后再关闭:Sheets(1).PageSetup.CenterFooter = "&""Arial,Bold""This is bold &Bbut this isn't"
    【解决方案4】:

    在元级别上,您可以通过录制宏并查看它的作用来发现这类事情。例如,要进行此设置,我录制了宏并将其取出:

    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 是如何做到的。从这个可以弄清楚如何自己做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多