【问题标题】:Format Header in Excel with Office JS使用 Office JS 在 Excel 中格式化标题
【发布时间】:2021-04-27 16:53:27
【问题描述】:

我目前正在尝试为 Excel 工作簿实现一些自动化。其中一部分是为该工作簿中的所有工作表设置一个通用标题。

标题应如下所示: Screenshot of the aimed header style and content

我在这里找到了question (52295459) 如何访问标题,但我没有设法格式化它们。代码 sn-p 附在下面。我阅读了footerHeader class 和参考format codes 的文档。但我被困住了。

所以,这些是我的问题:

  1. 是否可以以更通用的方式为工作簿中的所有工作表设置标题,而不是通过 getItem 及其名称访问每个工作表?
  2. 如何将字体颜色更改为#5E5E5E? 我试过&5E5E5E&c5E5E5E&color5E5E5E&#5E5E5E&K5E5E5E&K"5E5E5E" - 但没有任何效果。 编辑:我想更改标题部分的颜色。
  3. 我只需要调整表头的中间部分,可以保留左右部分的内容。但是,如果左右部分不为空,则我在中心部分指定的任何内容都将附加到右侧部分的末尾(attached string "center" wrongfully to right section)。有没有办法保留左右部分,只改变中间部分?
  4. 如果不是:如何将徽标作为图像插入并格式化它的高度/宽度?​​

到目前为止代码的工作部分:

//An array with the names of my wokrsheets
const worksheetNames : string[] = ["Titelseite", "GewerkeModule", "Statusanzeige", "Verteilerliste"];

//Access header of each sheet individually
for (const sheet of worksheetNames) {
    const headerFooter : Excel.HeaderFooter = context.workbook.worksheets
                                                .getItem(sheet)
                                                .pageLayout
                                                .headersFooters.defaultForAllPages;

    //Set the strings for the header sections,
    //  in which also the formatting should be contained (I guess)
    headerFooter.centerHeader = "center";
    headerFooter.leftHeader   = "left";
    headerFooter.rightHeader  = "right"
}

已经感谢您的帮助! 亲切的问候


更新: 我试图再次解决我的问题,实际上我也无法再重现问题 3。我不知道为什么以及我改变了什么。 通过打印出当前的标题字符串,我至少发现了标题颜色的格式。

所以,总结一下,我的问题的答案:

  1. 没有在所有工作表中设置标题的通用解决方案 - 感谢您向 Rita 澄清。 但是:循环遍历所有工作表的解决方案似乎有效(请参阅我上面的代码)

  2. 这会将颜色设置为浅灰色,并在第三行中包含“第 X 页,共 y”部分。 但是:这些简码(&Z、&S、&A)与微软引用的格式代码无关。我猜这些是德语格式代码,因为我的 Excel 安装设置为德语。但是,如果不同的语言设置需要不同的代码,那会很烦人吗? context.workbook.worksheets.getItem(sheet).pageLayout.headersFooters.defaultForAllPages.centerHeader = "&Z&M01+043Heder Line1 \nNextLine\nPage &S of &A" &Z 将输出居中(“zentrieren”) &M01+043 似乎将字体颜色设置为浅灰色 \n 换行 &S当前页码(“Seite”) &A所有页面总数

  3. 我也无法再重现该错误。魔法?好像和格式化有关……

  4. 尚未实施 - 再次感谢 Rita

【问题讨论】:

  • 这篇文章包含很多问题,因此可能很难评价社区的答案。我建议将这个问题分成多个问题。
  • 基本页眉/页脚设置见这里 --> stackoverflow.com/questions/52295459/…

标签: javascript excel office-js excel-addins


【解决方案1】:

感谢在这里发布问题。

  1. 目前无法使用一个 API 为所有工作表设置页眉和页脚,这可能是一个新请求。

  2. var worksheet = context.workbook.worksheets.getItem("Sheet7"); var range = worksheet.getRange("A1"); range.format.font.color = "5e5e5e"; 可以帮助设置颜色

  3. 无法repro,尝试设置左右header时设置中间header,在win32下效果很好,请问你打的是哪个平台?

  4. 很抱歉,该图片在api级别尚不支持,您可以提交新请求点击here

【讨论】:

  • 感谢您的回答! 1. 好吧,那么我的工作就足够了。 2. 不,我想编辑标题中的颜色 - 是否支持? 3. 我使用的是带有 Windows 10 的虚拟机,以及带有 Script Lab 4 的 Office 365。太糟糕了,谢谢!
  • 再次感谢@Rita!我用对我有用的答案更新了我的问题。我不知何故有一个新问题,我无法清除/覆盖我的标题的内容 - 但我为此发布了另一个问题:stackoverflow.com/questions/67486444/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多