前言

在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页眉、页脚的更多相关文章

  1. C# 如何添加Excel页眉页脚(图片、文字、奇偶页不同)

    简介 我们可以通过代码编程来对Excel工作表实现很多操作,在下面的示例中,将介绍如何来添加Excel页眉.页脚.在页眉处,我们可以添加文字,如公司名称.页码.工作表名.日期等,也可以添加图片,如LO ...

  2. 使用C#在word中插入页眉页脚

    //插入页脚 public void InsertFooter(string footer) { if (ActiveWindow.ActivePane.View.Type == WdViewType ...

  3. 如何利用API导出带有页眉页脚的excel

     在报表中设置的页眉页脚在页面中是看不到的,如下图: 页面中的效果: 在打印的时候,可以看到页眉页脚的效果: 那么,如果将页眉页脚导入到导出的excel中呢.我们可以通过API来进行设置: < ...

  4. NPOI 表头、页眉页脚重复设置

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  5. C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化

    转:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 1.新建Word文档 #region 新建Word文档/// &l ...

  6. 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页

    itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...

  7. ★itext-为pdf文件添加页眉页脚 | 3步完成 |

    由于上一篇自定义生成pdf的功能需求又增加了,需要加上页码.所以本博客诞生了~ 1. 通过继承PdfPageEventHelper类,实现需要实现的方法 import com.lowagie.text ...

  8. Richview 首页 奇偶页 不同页眉页脚

    首页 奇偶页 不同页眉页脚 ScaleRichView v6.0 Different headers and footers for the first page, for odd and even ...

  9. itext 生成pdf文件添加页眉页脚

    原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...

  10. Office WORD如何为每一页设置不同的页眉页脚

    如下图所示,我想要为封面和目录,摘要等等设置不同的页眉页脚(一般封面和目录不需要页脚)   而从正文开始,套用相同的页眉和以页数作为页脚(注意"第一章 绪论"不是这个文档的第一页) ...

随机推荐

  1. 使用go语言开发hive导出工具

    前言 新版 hive 提供了 beeline 工具,可以执行SQL并导出数据,不过操作还是有点复杂的,团队里有些同学不会Linux的基本操作,所以我花了亿点点时间写了个交互式的命令行工具方便使用. 效 ...

  2. 由mysql转为oracle注意事项

    1. text类型->nclob 2. 表名是关键字   引号 3. 字段名是关键字 引号 4. 日期型和mysql不同,hh24:mi:ss  就是HH:mm:ss,库里存日期型也可以(查询时 ...

  3. AttributeError: module 'sqlalchemy' has no attribute '__all__'

    升级组件 pip install --upgrade flask-sqlalchemy

  4. [C++]线段树 区间修改 区间查询

    线段树 区间修改 区间查询 请先阅读上一篇Bolg 算法思想 这次要引入一个核心变量: lazy 懒标记 为了达到区间修改的目的 又为了减少运算量 所以就需要引入懒标记这个变量 用来满足 即用即推 没 ...

  5. 优雅设计之美:实现Vue应用程序的时尚布局

    前言 页面布局是减少代码重复和创建可维护且具有专业外观的应用程序的基本模式.如果使用的是Nuxt,则可以提供开箱即用的优雅解决方案.然而,令人遗憾的是,在Vue中,这些问题并未得到官方文档的解决. 经 ...

  6. Ubuntu 20.04 挂载 NTFS 硬盘 / 格式化并挂载 EXT4 硬盘

    创建挂载目录 mkdir /mnt/hdd 此目录在最后一步中用得到. 确定要挂载的硬盘 fdisk -l 由于我们要挂载的是 NTFS 硬盘,根据上面的信息,可以确定 /dev/sda1 是我们要挂 ...

  7. cyclone3内部资源

    CycloneIII内部资源概述 目录 CycloneIII内部资源概述 Logic Elements and Logic Array Blocks(逻辑元件和逻辑阵列块) LE LAB LAB In ...

  8. cookie和session的区别?一文讲透

    一.问题 cookie和session的区别? 二.回答 1.总结如下- cookie: - cookie存储于客户端本地,即浏览器缓存 - cookie存储着sessionId,作为后台sessio ...

  9. 深度解读DBSCAN聚类算法:技术与实战全解析

    探索DBSCAN算法的内涵与应用,本文详述其理论基础.关键参数.实战案例及最佳实践,揭示如何有效利用DBSCAN处理复杂数据集,突破传统聚类限制. 关注TechLead,分享AI全维度知识.作者拥有1 ...

  10. Java的构造函数

    构造函数就是名字相同,名字前面可以不加东西,要加就只能加public或者其他的访问权限,其作用是赋初值.