首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用C#代码向 Excel 文档添加水印

使用C#代码向 Excel 文档添加水印

原创
作者头像
用户12401097
发布2026-05-25 17:27:28
发布2026-05-25 17:27:28
140
举报

向 Excel 电子表格添加水印是一种常见方法,可用于品牌标识或标记文档保密性。虽然 Microsoft Excel 本身没有直接提供水印功能,但可以通过在工作表页眉或页脚插入图片,或将图片设置为背景的方式来实现类似效果。

本文将介绍如何在 C# 中通过页眉图片或背景图片,为 Excel 添加水印效果。

准备开发环境

在开始之前,需要在 .NET 项目中引用相关 Excel 处理库的 DLL 文件。可以通过 NuGet 安装或从官方渠道下载后手动添加引用。

代码语言:txt
复制
PM> Install-Package Spire.XLS

页眉图片水印 vs 背景图片水印

页眉图片水印

优点:

  • 水印会保留在打印输出中,确保最终文档中可见

缺点:

  • 在 Excel 的“普通视图”中不可见,只能在“页面布局”或“分页预览”中看到
  • 如果要将水印居中显示,需要手动调整页边距,尤其是上边距和左边距

背景图片水印

优点:

  • 水印会铺满整个工作表区域,视觉效果更统一

缺点:

  • 不会出现在打印结果中,打印输出时水印会消失

使用 C# 通过页眉图片向 Excel 添加水印

Spire.XLS for .NET 提供了 PageSetup 类,可用于控制打印工作表的外观和布局相关设置。该类包含 CenterHeader 和 CenterHeaderImage 属性,可用于在页眉的居中区域设置图片。

以下是在 C# 中通过页眉图片为 Excel 添加水印的步骤:

  1. 创建 Workbook 对象
  2. 从指定文件路径加载 Excel 文档
  3. 使用 Image.FromFile() 方法加载图片
  4. 从工作簿中获取指定工作表
  5. 通过将 Worksheet.PageSetup.CenterHeader 属性设置为 “&G”,在页眉中添加图片占位符
  6. 使用 Worksheet.PageSetup.CenterHeaderImage 属性将图片应用到页眉居中位置
  7. 将工作簿保存为新的 Excel 文件

示例代码如下:

代码语言:C#
复制
using Spire.Xls;
using System.Drawing;

namespace 通过页眉为Excel添加水印
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象
            Workbook workbook = new Workbook();

            // 加载 Excel 文档
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

            // 加载图片文件
            Image image = Image.FromFile("C:\\Users\\Administrator\\Desktop\\confidential.png");

            // 遍历文件中的所有工作表
            for (int i = 0; i < workbook.Worksheets.Count; i++)
            {
                // 获取指定工作表
                Worksheet worksheet = workbook.Worksheets[i];

                // 在页眉中间区域添加图片占位符
                worksheet.PageSetup.CenterHeader = "&G";

                // 将图片添加到页眉中间位置
                worksheet.PageSetup.CenterHeaderImage = image;
            }

            // 保存结果文件
            workbook.SaveToFile("AddWatermark.xlsx", ExcelVersion.Version2016);

            // 释放资源
            workbook.Dispose();
        }
    }
}

使用 C# 通过背景图片为 Excel 添加水印

在 Spire.XLS for .NET 中,PageSetup 类提供了 BackgroundImage 属性,可用于获取或设置工作表的背景图片,从而实现水印效果。

以下是在 C# 中通过背景图片为 Excel 添加水印的操作步骤:

  1. 创建 Workbook 对象
  2. 从指定路径加载 Excel 文件
  3. 加载图片文件,并转换为 Bitmap 格式
  4. 获取工作簿中的指定工作表
  5. 通过 Worksheet.PageSetup.BackgroundImage 属性将图片设置为工作表背景
  6. 将结果保存为新的 Excel 文件

示例代码如下:

代码语言:C#
复制
using Spire.Xls;
using System.Drawing;

namespace 通过背景图片为Excel添加水印
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象
            Workbook workbook = new Workbook();

            // 加载 Excel 文档
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

            // 加载图片文件
            Bitmap bitmapImage = new Bitmap(Image.FromFile("C:\\Users\\Administrator\\Desktop\\sample.png"));

            // 遍历文件中的所有工作表
            for (int i = 0; i < workbook.Worksheets.Count; i++)
            {
                // 获取指定工作表
                Worksheet worksheet = workbook.Worksheets[i];

                // 将图片设置为工作表背景
                worksheet.PageSetup.BackgoundImage = bitmapImage;
            }

            // 保存结果文件
            workbook.SaveToFile("AddWatermark.xlsx", ExcelVersion.Version2016);

            // 释放资源
            workbook.Dispose();
        }
    }
}

总结

本文演示了如何使用 C# 通过背景图片为 Excel 工作表添加水印效果。整体实现思路是利用 Spire.XLS 提供的 Workbook 和 PageSetup 功能,将图片设置为工作表的背景,从而在视觉上形成水印效果。

实现流程主要包括:先创建 Workbook 对象并加载目标 Excel 文件,然后读取图片并转换为 Bitmap 格式。接着遍历工作簿中的所有工作表,将背景图片应用到每个 Sheet 的 PageSetup 属性中,最后保存为新的 Excel 文件并释放资源。

这种方式可以快速为多个工作表统一添加背景水印,适用于需要批量标识文档或进行品牌标注的场景。不过需要注意的是,背景图片水印在打印时通常不会被保留,因此更适合用于屏幕展示场景。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备开发环境
  • 页眉图片水印 vs 背景图片水印
    • 页眉图片水印
    • 背景图片水印
  • 使用 C# 通过页眉图片向 Excel 添加水印
  • 使用 C# 通过背景图片为 Excel 添加水印
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档