C#/VB.NET 在Excel中添加水印
在工作中,为了防止文件被随意复制和传播,通常我们会选择在文档中添加水印来对文件进行有效保护。文字水印是比较常见的一种保护手段,它可以有效防止文件被任意复制和随意打印传播。不过,Excel默认并没有水印功能。此时,我们可以把插入的艺术字作为水印,将水印和工作表融合在一起,以防止文档被复制传播。那么如何轻松实现在Excel中添加水印呢?别着急,我给大家整理了一个高效便捷的方法,通过编程方式达到此目的。下面是我整理的具体步骤,并附上C#/VB.NET代码供大家参考。
程序环境:
本次测试时,在程序中引入 Spire.XLS.dll 文件。
方法1:
将Free Spire.XLS for .NET 下载到本地,解压,找到 BIN 文件夹下的 Spire.XLS.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。
方法2::
通过NuGet安装。可通过以下 2 种方法安装:
1. 可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.XLS”,点击“安装”。等待程序安装完成。
2. 将以下内容复制到 PM 控制台安装。
Install-Package FreeSpire.XLS -Version 12.7
在Excel中添加水印
以下是详细步骤:
- 创建Workbook类的实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 创建字体并定义文本。
- 遍历 Excel 文件中的所有工作表。
- 使用 DrawWatermarkImage() 方法创建基于文本的水印图像。
- 通过Worksheet.PageSetup.LeftHeaderImage 属性将图片设置为每个工作表左页眉的图像源。
- 将 Worksheet.PageSetup.LeftHeader 属性设置为“&G”,在左侧标题部分显示图像。
- 将工作表的查看模式更改为页面布局,以便查看水印。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
完整代码
C#
using Spire.Xls;
using System.Drawing; namespace AddWatermark
{
class Program
{
static void Main(string[] args)
{
//初始化 Workbook 类的实例并加载 Excel 文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("示例文档.xlsx"); //创建字体
Font font = new Font("宋体", 40);
//定义文本
string watermark = "内部使用"; //遍历文件中的所有工作表
foreach (Worksheet sheet in workbook.Worksheets)
{
//调用 DrawWatermarkImage() 方法根据文本创建图像
Image imgWtrmrk = DrawWatermarkImage(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth); //将图像添加到每个工作表的左侧标题部分
sheet.PageSetup.LeftHeaderImage = imgWtrmrk;
sheet.PageSetup.LeftHeader = "&G"; //将工作表的查看模式更改为页面布局以查看水印
sheet.ViewMode = ViewMode.Layout;
} //保存结果文件
workbook.SaveToFile("添加水印.xlsx", ExcelVersion.Version2013);
} private static Image DrawWatermarkImage(string text, Font font, Color textColor, Color backColor, double height, double width)
{
//创建具有指定宽度和高度的图像
Image img = new Bitmap((int)width, (int)height);
//从图像创建一个 Graphics 对象
Graphics drawing = Graphics.FromImage(img); //获取文字的大小
SizeF textSize = drawing.MeasureString(text, font); //通过将指定的转换前置到图形的变换矩阵来更改坐标系统的原点
drawing.TranslateTransform(((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2); //应用旋转
drawing.RotateTransform(-45); //通过将指定的转换前置到图形的变换矩阵来更改坐标系统的原点
drawing.TranslateTransform(-((int)width - textSize.Width) / 2, -((int)height - textSize.Height) / 2); //绘制背景
drawing.Clear(backColor); //为文本创建画笔
Brush textBrush = new SolidBrush(textColor); //将文本绘制到图形的中心位置
drawing.DrawString(text, font, textBrush, ((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
drawing.Save();
return img;
}
}
}
VB.NET
Imports Spire.Xls
Imports System.Drawing Namespace AddWatermark
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化 Workbook 类的新实例并加载 Excel 文件
Dim workbook As Workbook = New Workbook()
workbook.LoadFromFile("示例文档.xlsx") '创建字体
Dim font As Font = New Font("宋体", 40)
'定义文本
Dim watermark = "内部使用" '遍历文件中的所有工作表
For Each sheet As Worksheet In workbook.Worksheets
'调用 DrawWatermarkImage() 方法根据文本创建图像
Dim imgWtrmrk As Image = DrawWatermarkImage(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth) '将图像添加到每个工作表的左侧标题部分
sheet.PageSetup.LeftHeaderImage = imgWtrmrk
sheet.PageSetup.LeftHeader = "&G" '将工作表的查看模式更改为页面布局以查看水印
sheet.ViewMode = ViewMode.Layout
Next '保存结果文件
workbook.SaveToFile("添加水印.xlsx", ExcelVersion.Version2013)
End Sub Private Shared Function DrawWatermarkImage(ByVal text As String, ByVal font As Font, ByVal textColor As Color, ByVal backColor As Color, ByVal height As Double, ByVal width As Double) As Image
'创建具有指定宽度和高度的图像
Dim img As Image = New Bitmap(width, height)
'从图像创建一个 Graphics 对象
Dim drawing As Graphics = Graphics.FromImage(img) '获取文字的大小
Dim textSize As SizeF = drawing.MeasureString(text, font) '通过将指定的转换前置到图形的变换矩阵来更改坐标系统的原点
drawing.TranslateTransform((CInt(width) - textSize.Width) / 2, (CInt(height) - textSize.Height) / 2) '应用旋转
drawing.RotateTransform(-45) '通过将指定的转换前置到图形的变换矩阵来更改坐标系统的原点
drawing.TranslateTransform(-(CInt(width) - textSize.Width) / 2, -(CInt(height) - textSize.Height) / 2) '绘制背景
drawing.Clear(backColor) '为文本创建画笔
Dim textBrush As Brush = New SolidBrush(textColor) '将文本绘制到图形的中心位置
drawing.DrawString(text, font, textBrush, (CInt(width) - textSize.Width) / 2, (CInt(height) - textSize.Height) / 2)
drawing.Save()
Return img
End Function
End Class
End Namespace
效果图

—本文完—
C#/VB.NET 在Excel中添加水印的更多相关文章
- vb.net向Excel中写入值
根据网上例子结合自己的工具环境修改后测试可以通过 我使用的工具:Microsoft Visual Studio 2010,Excel 2007 一.在D盘新建一个temp文件夹用于存放Excel启动时 ...
- Java 在Excel中添加水印(单一水印、平铺水印)
在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...
- C#/VB.NET 获取Excel中图片所在的行、列坐标位置
本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置.这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐标即顶点所在的第几列.纵坐标即顶点所在的第几行.下面是获取图 ...
- C#/VB.NET 在Excel单元格中应用多种字体格式
在Excel中,可对单元格中的字符串设置多种不同样式,通常只需要获取到单元格直接设置样式即可,该方法设置的样式会应用于该单元格中的所有字符.如果需要对单元格中某些字符设置样式,则可以参考本文中的方法. ...
- C#/VB.NET 如何在Excel中使用条件格式设置交替行颜色
说起高亮数据行,不让人想起了交替颜色行,有的人把交替颜色行也都设置成高亮,不仅不美观,而且对阅读还是个干扰.隔行交替的颜色是为了阅读不串行,这些行只是环境,数据才是主体.那么如何通过C#/VB.NET ...
- Excel中的宏--VBA的简单例子
第一步:点击录制宏 第二步:填写宏的方法名 第三步:进行一系列的操作之后,关闭宏 第四步:根据自己的需要查看,修改宏 第六步:保存,一般是另存为,后缀名为.xlsm,否则宏语言不能保存. 到此为止恭喜 ...
- VBA在Excel中的应用(一):改变符合条件单元格的背景颜色
在使用excel处理数据的时候,为了能更清晰的标示出满足特定条件的单元格,对单元格添加背景色是不错的选择.手工处理的方式简单快捷,但是当遇到大批量数据,就会特别的费时费力,而且不讨好(容易出错).通过 ...
- [VBA]用一个简单例子说明如何在Excel中自定义函数
Excel中的函数无疑是强大的,但是再强大的战士也有他脆弱的脚后跟[1].这两天在使用Excel的时候遇到了一个需求,要在某一个单元格里面自动计算今天是星期几(如显示 Today is Tuesday ...
- VB.Net出口Excel原则
在VB机房的版本中,我们已经暴露导出Excel特征,此功能已重新接触到不同的理解 一.原理 要实现导出Excel的功能,首先要引用命名空间,目的是能够使用该命名空间下的方法和类 Imports ...
- C#/VB.NET对EXCEL图片添加超链接
在日常工作中,在编辑文档时,为了方便自己或者Boss能够实时查看到需要的网页或者文档是,需要对在Excel中输入的相关文字进行超链接,那么对于一些在Excel中插入的图片我们该怎么实现超链接呢,下面给 ...
随机推荐
- 分享个好东西两行前端代码搞定bilibili链接转视频!
只需要在您的要解析B站视频的页面的</body>前面加上下面两行代码即可,脚本会在客户端浏览器里解析container所匹配到的容器里的B站超链接 (如果不是外围有a标签的超链接只是纯粹的 ...
- 齐博x1换服务器如何转移网站?
如果你要把网站从本机传到服务器,又或者要更换服务器,请按下面的操作处理 第一步,必须要在原网站后台备份数据. 第二步,把备份好的网站所有文件,传到新服务器或空间 特别要注意 \cache\ 目录下建议 ...
- 基于BP神经网络的手MNIST写数字识别
import numpy import math import scipy.special#特殊函数模块 import matplotlib.pyplot as plt #创建神经网络类,以便于实例化 ...
- 制作一个windows垃圾清理小程序
制作一个windows垃圾清理小程序: 把下列代码保存为.bat文件(如垃圾清理.bat) 双击它就能很快地清理垃圾文件,大约一分钟不到. 就是下面的文字(这行不用复制)=============== ...
- costool - 腾讯云cos快捷工具。
目录 使用截图 使用方法 配置文件 安装方法 其他 一个腾讯云cos(对象存储)非官方快速上传和下载的工具,使用官方go-sdk二次开发.可以用于以下场景. 备份一些配置文件,比如.bashrc .v ...
- 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令
目录 3 安装配置 3.1 安装GCC 3.2 安装libevent 3.3 安装libfastcommon 3.4 安装FastDFS 3.5 安装fastdfs-nginx-module 3.5 ...
- SpringBoot3正式版将于11月24日发布:都有哪些新特性?
从 2018 年 2 月 28 号发布 Spring Boot 2.0 版本开始,整个 2.X 版本已经经过了 4 年多的时间,累计发布了 95 个不同的版本,而就在前不久,2.X 系列的也已经迎来了 ...
- 2022春每日一题:Day 24
题目:Work Group 树形dp,设状态f[u][0/1] 表示以u为根节点,他的子树中选了0(偶数)1(奇数)个节点的最大价值,设x为他的一个儿子,显然f[u][1]=max(f[k][0]+f ...
- python-opencv实现抖动算法
抖动算法简单介绍 简单说就是牺牲分辨率来提高颜色数量. 通过黑点的疏密程度来进行灰度的显示. 例如墨水屏幕只能显示黑白,那么我们可以取样一部分区域矩,例如2x2的一个矩阵,来显示5个级别的灰度,用4个 ...
- day30-JQuery03
JQuery03 4.jQuery选择器03 4.4表单选择器 应用实例 <!DOCTYPE html> <html lang="en"> <head ...