SpreadJS 页眉页脚配置指南:占位符与奇偶页详解
作为开发者,你可能遇到过这些场景: 页眉页脚看似简单,但占位符的组合规则、优先级、样式作用域,稍不注意就会踩坑。本文帮你一次性理清。 SpreadJS 的页眉页脚配置遵循 位置 → 类型 → 内容 的三层结构: 基础示例: 这段代码里, 除了数据,页眉页脚的文字样式也能控制: 样式占位符有个特点:前面的设置会影响后面的文字。举个例子: 这段文本的效果是: 最终效果如下: SpreadJS和Excel一样,支持三种页眉页脚模式: 要启用首页不同和奇偶页,需要先开启开关: 这三种模式有优先级: 如果想同时设置首页、奇数页、偶数页,可以这样写: 页眉页脚看着简单,但真要灵活运用起来,还是有不少细节需要注意: 掌握这些要点后,无论是做报表导出、合同打印,还是其他需要页眉页脚的场景,你都能轻松应对了。一、为什么页眉页脚配置总让人头疼?
&P 写在哪里才能生效?二、核心概念:三层结构
位置层:left | center | right
↓
类型层:header | footer
↓
内容层:文本 + 占位符sheet.printInfo().pageHeaderFooter({
normal: {
header: {
center: "第 &P 页"
}
}
})normal表示在所有页面上应用这个设置;header代表页眉(对应的页脚是footer);center表示中间位置(还有left和right);最关键的是&P,它代表当前页码,我们叫它占位符——打印时会自动替换成实际的页码。三、占位符速查表
3.1 数据占位符
&P当前页码 第1页打印时显示1 &N总页数 共10页就显示10 &D当前日期 2026/1/1 &T当前时间 15:30:26 &G图像 需配合 leftImage/centerImage/rightImage使用&F工作簿名称 等于workbook的name属性 &A工作表名称 当前打印的sheet名称 3.2 样式占位符
&B加粗 &I斜体 &2020号字体(数字可自定义) &"宋体"设置字体为宋体(注意英文双引号) &KFF0000红色(K代表颜色,后面跟RGB十六进制) &S删除线 &U下划线 四、样式作用域规则
&26西&"宋体"安&K0000FF葡&U萄&B城&I你&S好&26让后面所有文字变成26号字&"宋体"从"安"字开始应用宋体&K0000FF从"葡"字开始变成蓝色
五、首页与奇偶页设置
5.1 三种模式
5.2 启用特殊模式
// 首页不同
sheet.printInfo().differentFirstPage(true)
// 奇偶页不同
sheet.printInfo().differentOddAndEvenPages(true)5.3 优先级规则
5.4 完整示例
// 先开启两个开关
sheet.printInfo().differentFirstPage(true)
sheet.printInfo().differentOddAndEvenPages(true)
// 再分别设置
sheet.printInfo().pageHeaderFooter({
first: {
header: {
center: "&30合同封面", // 封面页:大号字体
}
},
odd: {
header: {
left: "工作表:&A",
center: "第&P/&N页"
}
},
even: {
header: {
center: "偶数页 第&P/&N页",
right: "导出日期:&D"
}
},
})六、总结
&P、&N、&D这些占位符是动态内容的关键,记不住的话建议收藏备用。differentFirstPage(true)或differentOddAndEvenPages(true)。