前言

在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. python - view() + UpsamplingBilinear2d()

    import torch from torch import nn # view函数的-1参数的作用在于基于另一参数,自动计算该维度的大小 # view的第一个参数:2 代表的是batch 后面的2, ...

  2. K8S 组合命令

    强制删除namespace kubectl get namespace [namespace-name] -o json | tr -d "\n" | sed "s/\& ...

  3. 7z 一键压缩备份

    该批处理已开源 开原地址: 点击进入 磁盘备份 工具有很多,如果你需要增量式备份的话,以下这些方法并不适合你.goodsync 可以了解一下. 以下方式仅适用于,懒人一键压缩备份. 对于我来说 定期的 ...

  4. NewsCenter

    打开界面有一个搜索框 抓包查看是post形式提交的数据包 这时候试试sql注入,万能密码直接全都显示,那就说明存在sql注入漏洞 这里试试用sqlmap自动注入试试(POST类型的sql注入第一次尝试 ...

  5. 神经网络入门篇:详解多样本向量化(Vectorizing across multiple examples)

    多样本向量化 与上篇博客相联系的来理解 逻辑回归是将各个训练样本组合成矩阵,对矩阵的各列进行计算.神经网络是通过对逻辑回归中的等式简单的变形,让神经网络计算出输出值.这种计算是所有的训练样本同时进行的 ...

  6. CDQ分治(初步入门)

    CDQ分治 CDQ分治,传说中是一个神犇创造的算法. 在了解这种算法之前,我们有必要了解一下一种基本的思想:分治. 分治介绍 分而治之,将原问题不断划分成若干个子问题,直到子问题规模小到足以直接解决 ...

  7. L3-002 特殊堆栈

    #include <bits/stdc++.h> using namespace std; const int N = 1E5 + 10; int tr[N]; stack<int& ...

  8. .NET周刊【11月第3期 2023-11-19】

    国内文章 .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试 https://www.cnblogs.com/FreeSql/p/17836 ...

  9. 一步解决Cannot resolve symbol 'WebServlet'(@WebServlet注解标红)

    右键项目名(javaweb01)->Open Module Settings Modules->Dependencies->点击Export上面的,添加Tomcat即可

  10. 【Javaweb】动态web工程目录介绍

    src 存放自己编写的Java源代码 web 专门用来存放web工程的资源文件(html页面.css文件.js文件等等) WEB-INF 是一个受服务器保护的目录,浏览器无法直接访问此目录的内容 we ...