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如何为每一页设置不同的页眉页脚
如下图所示,我想要为封面和目录,摘要等等设置不同的页眉页脚(一般封面和目录不需要页脚) 而从正文开始,套用相同的页眉和以页数作为页脚(注意"第一章 绪论"不是这个文档的第一页) ...
随机推荐
- WSL2 中访问 Windows 的代理的最简易方案
前言 学校的网卡不允许运行虚拟机,所以必须将 WSL 的流量变成主机的流量,但从百度查的方案都是设置 Windows 主机的 IP,都忽视了 Windows 的默认功能,即 mdns 或 Window ...
- 如何在 Ubuntu上使用snap安装Docker
1 检查系统版本 具有sudo或root用户权限 2 安装 SNAP ctrl+alt+T 打开终端 运行以下命令以安装 SNAP sudo apt update sudo apt install s ...
- nginx虚拟机及热部署(在线升级)
实现热部署(在线升级): 热部署方案一 (有弊端,不利于回滚) 查看nginx版本及源编译差数: /usr/local/nginx/sbin/nginx -V 预编译/ 编译/ 安装:在预编译之前,先 ...
- 后缀数组 (SA) 学习笔记
写得很草率的一篇东西. 后缀排序 #include<bits/stdc++.h> #define il inline using namespace std; il int read() ...
- Redis 7.0 源码环境搭建与阅读技巧
天下武功,无坚不摧,唯快不破!我的名字叫 Redis,全称是 Remote Dictionary Server. 有人说,组 CP,除了要了解她外,还要给机会让她了解你. 那么,作为开发工程师的你,是 ...
- JavaScript:对象的三个属性
每一个对象都有与之相关的原型(prototype).类(class)和可扩展性(extension attribute). 原型 prototype 对象的原型属性是用来继承属性的.通过对象直接量创建 ...
- Intellij IDEA开发Scala程序
前言 Intellij IDEA是一款功能强大的集成开发环境(IDE),可用于开发各种编程语言,包括Scala.Scala是一种功能强大的静态类型编程语言,它结合了面向对象和函数式编程的特性. 本文我 ...
- 聊聊分布式 SQL 数据库Doris(四)
FE层的架构都能在网上找到说明. 但BE层的架构模式.一致性保障.与FE层之间的请求逻辑,数据传输逻辑等,我个人暂时没有找到相应的博客说明这些的.当然这些是我个人在学习与使用Doris过程中,对内部交 ...
- [ABC235G] Gardens
Problem Statement Takahashi has $A$ apple seedlings, $B$ banana seedlings, and $C$ cherry seedlings. ...
- [ABC266Ex] Snuke Panic (2D)
Problem Statement Takahashi is trying to catch many Snuke. There are some pits in a two-dimensional ...