Java 插入Excel页眉、页脚
前言
在Excel文档中,我们常用页眉页脚来显示文档的附加信息,例如日期、公司名称、Logo或作者信息等。本文将通过Java程序来介绍如何给Excel文档添加页眉页脚。代码示例主要从以下几方面来演示添加方法。
- 添加页眉页脚(文本、图片)
- 为奇偶页添加不同的页眉页脚
- 为首页和其他页添加不同的页眉页脚
在运行代码前,需要添加Jar包到IDEA中。添加方法有两种:其一,在官网上下载Free Spire.XLS for Java产品包,解压后找到lib文件夹下的Spire.Xls.jar,然后手动将其导入IDEA中即可;其二(推荐使用),通过Maven仓库安装导入产品及依赖。创建一个Maven项目,在pom.xml文件中输入以下代码,然后点击“Import Changes”即可。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
代码示例
【示例1】添加页眉、页脚(文本、图片)
Free Spire.XLS for Java支持添加文本、图片到页眉页脚。其中可设置添加位置(靠左、居中、靠右)及文本的字体、字号、颜色等。另外,还需注意Excel页眉或页脚在普通浏览模式下不可见,它们仅在页面布局模式或者打印预览模式才可见。
1 import com.spire.xls.*;
2 import javax.imageio.ImageIO;
3 import java.awt.image.BufferedImage;
4 import java.io.*;
5
6 public class HeaderFooter {
7 public static void main(String[] args) throws IOException {
8 //加载Excel示例文档
9 Workbook workbook= new Workbook();
10 workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\Test.xlsx");
11
12 //获取第一个工作表
13 Worksheet Worksheet = workbook.getWorksheets().get(0);
14
15 //添加文本到页眉页脚,并设置其字体、字号、颜色和位置
16 Worksheet.getPageSetup().setRightHeader("&\"微软雅黑\"&14 腾飞广告有限公司");
17 Worksheet.getPageSetup().setRightFooter("&\"微软雅黑\"&12&B&KFF0000 注:仅用于内部员工查看");
18 //加载图片
19 BufferedImage image = ImageIO.read( new File("C:\\Users\\Test1\\Desktop\\Image.png"));
20
21 //添加图片到页眉,并设置位置
22 Worksheet.getPageSetup().setLeftHeaderImage(image);
23 Worksheet.getPageSetup().setLeftHeader("&G");
24 //添加图片到页脚
25 //Worksheet.getPageSetup().setCenterFooterImage(image);
26 //Worksheet.getPageSetup().setCenterFooter("&G");
27
28 //设置显示样式
29 Worksheet.setViewMode(ViewMode.Layout);
30
31 //保存文档
32 workbook.saveToFile("output/HeaderFooter.xlsx", ExcelVersion.Version2010);
33 }
34 }
添加效果

【示例2】为奇偶页添加不同的页眉页脚
Free Spire.XLS for Java提供了setDifferentOddEven方法来为Excel文档中的奇偶页添加不同的页眉页脚。在添加的同时,可设置文本字体、字号和颜色。
1 import com.spire.xls.*;
2 public class DifferentHeaderFooter {
3 public static void main(String[] args) {
4
5 //加载Excel示例文档
6 Workbook workbook = new Workbook();
7 workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\Test.xlsx");
8
9 //获取第一个工作表
10 Worksheet worksheet = workbook.getWorksheets().get(0);
11
12 //设置第一页,第二页
13 worksheet.getCellRange("A1").setText("");
14 worksheet.getCellRange("M1").setText("第二页");
15
16 //将setDifferentOddEven的值设为1, 表示奇数页和偶数页可以分别设置页眉页脚
17 worksheet.getPageSetup().setDifferentOddEven((byte)1);
18
19 //设置奇数页及偶数页页眉页脚,样式和颜色
20 worksheet.getPageSetup().setOddHeaderString( "&\"Arial\"&20&B&K191970 奇数_页眉");
21 worksheet.getPageSetup().setOddFooterString ( "&\"Arial\"&20&B&K191970 奇数_页脚");
22 worksheet.getPageSetup().setEvenHeaderString ( "&\"Arial\"&20&B&KFF0000 偶数_页眉");
23 worksheet.getPageSetup().setEvenFooterString ( "&\"Arial\"&20&B&KFF0000 偶数_页脚");
24
25 //设置显示样式
26 worksheet.setViewMode(ViewMode.Layout);
27
28 //保存文档
29 workbook.saveToFile("output/DifferentHeaderFooter.xlsx", ExcelVersion.Version2010);
30 }
31 }
添加效果

【示例3】为首页和其他页添加不同的页眉页脚
1 import com.spire.xls.*;
2 public class DifferentHeaderFooterOnFirstPage {
3 public static void main(String[] args) {
4 //加载Excel示例文档
5 Workbook workbook = new Workbook();
6 workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\Test.xlsx");
7 //获取第一个工作表
8 Worksheet worksheet = workbook.getWorksheets().get(0);
9
10 //设置第一页,第二页
11 worksheet.getCellRange("A1").setText("");
12 worksheet.getCellRange("M1").setText("第二页");
13
14 //将setDifferentFirst的值设为1,表示第一页和其他页可分别设置页眉页脚
15 worksheet.getPageSetup().setDifferentFirst((byte)1);
16
17 //设置第一页页眉页脚,样式和颜色
18 worksheet.getPageSetup().setFirstHeaderString("&\"Arial\"&B&20&KFF0000第一页_页眉");
19 worksheet.getPageSetup().setFirstFooterString("&\"Arial\"&B&20&KFF0000第一页_页脚");
20
21 //设置其他页的页眉页脚,样式和颜色
22 worksheet.getPageSetup().setCenterHeader("&\"Arial\"&B&20&K191970其它页_页眉");
23 worksheet.getPageSetup().setCenterFooter("&\"Arial\"&B&20&K191970其它页_页眉");
24
25 //保存文档
26 workbook.saveToFile("output/DifferentHeaderFooterOnFirstPage.xlsx", ExcelVersion.Version2013);
27 }
28 }
添加效果

总结
通过以上代码示例,我们可以成功地为Excel文档添加页眉页脚,同时,对于一些个性化的需求,我们也可以为奇偶页添加不同的页眉页脚、为首页和其他页添加不同页眉页脚、文字格式化(如,设置字体、字号、字体颜色等)操作。
Java 插入Excel页眉、页脚的更多相关文章
- C# 如何添加Excel页眉页脚(图片、文字、奇偶页不同)
简介 我们可以通过代码编程来对Excel工作表实现很多操作,在下面的示例中,将介绍如何来添加Excel页眉.页脚.在页眉处,我们可以添加文字,如公司名称.页码.工作表名.日期等,也可以添加图片,如LO ...
- 使用C#在word中插入页眉页脚
//插入页脚 public void InsertFooter(string footer) { if (ActiveWindow.ActivePane.View.Type == WdViewType ...
- 如何利用API导出带有页眉页脚的excel
在报表中设置的页眉页脚在页面中是看不到的,如下图: 页面中的效果: 在打印的时候,可以看到页眉页脚的效果: 那么,如果将页眉页脚导入到导出的excel中呢.我们可以通过API来进行设置: < ...
- NPOI 表头、页眉页脚重复设置
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...
- C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化
转:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 1.新建Word文档 #region 新建Word文档/// &l ...
- 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页
itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...
- ★itext-为pdf文件添加页眉页脚 | 3步完成 |
由于上一篇自定义生成pdf的功能需求又增加了,需要加上页码.所以本博客诞生了~ 1. 通过继承PdfPageEventHelper类,实现需要实现的方法 import com.lowagie.text ...
- Richview 首页 奇偶页 不同页眉页脚
首页 奇偶页 不同页眉页脚 ScaleRichView v6.0 Different headers and footers for the first page, for odd and even ...
- itext 生成pdf文件添加页眉页脚
原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...
- Office WORD如何为每一页设置不同的页眉页脚
如下图所示,我想要为封面和目录,摘要等等设置不同的页眉页脚(一般封面和目录不需要页脚) 而从正文开始,套用相同的页眉和以页数作为页脚(注意"第一章 绪论"不是这个文档的第一页) ...
随机推荐
- 区间检测(range)
区间检测(range) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 给定一个长度为n的序列,进行m次检测,每次检测某个区间中,是否有重复的数. 输入 第一行,两个整数n和m,表示序列 ...
- 基于Electron27+Vite4+React18搭建桌面端项目|electron多开窗口实践
前段时间有分享一篇electron25+vite4搭建跨桌面端vue3应用实践.今天带来最新捣鼓的electron27+react18创建跨端程序.electron多开窗体(模拟QQ登录窗口切换主窗口 ...
- 传纸条(lgP1006)
终于有一道一遍过的题了/kk/kk 发现前几道都很难(总之暂时没想出来)就先把这个写了. 其实这题四维 dp 好像能过,但既然写了就写正解吧... 因为路径正着走和反着走都是一样的,所以问题就是求从左 ...
- k8s Rabbitmq安装部署
安装方式 kubectl apply -f rabbitmq.yaml -n yunda-dev-cache rabbitmq.yaml ##创建PV # 注意更换存储方式 --- apiVersio ...
- PXE批量网络装机
PXE高效批量网络装机 系统装机的三种引导方式 1.硬盘 2.光驱(u盘) 3.网络启动 pxe 系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小 ...
- [C++]vector的基本的用法
[vector/容器/向量/动态数组]的基本的用法 容器的定义 向量/容器(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container). 跟任意其它类型容器一样,它能够存 ...
- 「译文」Google SRE 二十年的经验教训
️URL: https://sre.google/resources/practices-and-processes/twenty-years-of-sre-lessons-learned/ ✍️Au ...
- Net 高级调试之七:线程操作相关命令介绍
一.简介 今天是<Net 高级调试>的第六篇文章.上一篇文章我们说了值类型,引用类型,数组等的内存表现形式.有了这个基础,我们可以更好的了解我们的程序在运行时的状态,内存里有什么东西,它们 ...
- 如何使用C#编写低代码应用插件
本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 作为当今快速发展的技术之一,低代码平台为开发人员提供了更高效.更简便的工具和 ...
- sqlite数据库删除了数据,为什么文件不会变小?
SQLite数据库文件的大小不会自动缩小,即使删除了其中的数据. 这是因为在SQLite中,当数据被删除时,它实际上并没有立即从磁盘上移除,而是被标记为[已删除], 这种处理机制,被删除的数据仍然占用 ...