使用 Office JS 在 Excel 中格式化 Header

Format Header in Excel with Office JS

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

header 应该是这样的: Screenshot of the aimed header style and content

我在这里找到 question (52295459) how to access the headers, but i did not manage to format them. The code snippet is attached below. I read the documentation for the footerHeader class and for the references format codes。但是我卡住了。

所以,这些是我的问题:

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

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

//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。我不知道为什么以及我改变了什么。 通过打印出当前的 header 字符串,我至少发现 header.

的着色格式

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

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

  2. 这会将颜色设置为浅灰色,并在第三行中包含“第 X 页,共 y 页”部分。 但是:这些短代码(&Z、&S、&A)与 Microsoft 引用的格式代码无关。我猜这些是德语格式代码,因为我的 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

谢谢post这里的问题。

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

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

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

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