C# 添加Excel水印
我们知道,在Excel中不容易直接实现添加水印的效果,但是Excel数据表格作为重要的办公文档之一,通过添加水印来实现防伪或者声明资料是很有必要的。鉴于此,本文将介绍如何给Excel工作表添加水印的方法。这里分以下两种情况:
- 通过添加背景图片来实现水印效果
- 通过页眉页脚添加图片水印效果。下面作详细介绍
所用工具:Free Spire.XLS for .NET
PS:下载安装该组件,在项目程序中添加引用该安装目录下的dll文件,并添加如下命名空间:using System; using Spire.Xls; using System.Drawing;
方法一:添加背景图片式文本水印
static void Main(string[] args){//创建一个Workbook类对象,并加载需要添加水印的Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");//初始化一个Font类字体对象,设置字体字号Font font = new Font("宋体", 36);//初始化一个String类型变量,并赋值“仅内部使用”作为水印文字String watermark = "仅内部使用";//设置背景图片为水印
//遍历工作簿中所有工作表foreach (Worksheet sheet in workbook.Worksheets){//调用DrawText()方法绘制文本为图片Image imgWtrmrk = DrawText(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth);//将水印图片设置成位图sheet.PageSetup.BackgoundImage = imgWtrmrk as Bitmap;}//保存文档并预览workbook.SaveToFile("result.xlsx", ExcelVersion.Version2010);System.Diagnostics.Process.Start("result.xlsx");}//自定义方法将文本绘制成图片并设置文本格式,包括字体,字体颜色、背景色、字体大小等private static Image DrawText(String text, System.Drawing.Font font, Color textColor, Color backColor, double height, double width){//将用来作为水印的文本返回为图片并设置其展示样式Image img = new Bitmap((int)width, (int)height);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;}
需要注意的是,这种方法添加的背景水印无法实现打印效果,但日常无纸化办公环境中,该方法也能很好的满足需求。
水印添加效果:
方法二、添加页眉图片水印
static void Main(string[] args){//创建一个Workbook类对象并加载Excel文档Workbook workbook = new Workbook(); workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");//初始化一个Font类字体对象,设置字体字号Font font = new Font("宋体", 36);//初始化一个String类型变量,并赋值“内部资料”作为水印文字String watermark = "内部资料";//在页眉中插入图片作为模拟水印//遍历工作簿中所有工作表foreach (Worksheet sheet in workbook.Worksheets){//调用DrawText()方法创建的图片Image imgWtrmrk = DrawText(watermark, font, System.Drawing.Color.LightCoral, System.Drawing.Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth);//插入图片作为LeftHeaderImagesheet.PageSetup.LeftHeaderImage = imgWtrmrk;sheet.PageSetup.LeftHeader = "&G";//设置视图模式,此方法中页眉水印仅在Layout模式下直观可见sheet.ViewMode = ViewMode.Layout;}//保存文档并预览workbook.SaveToFile("result2.xlsx", ExcelVersion.Version2010);System.Diagnostics.Process.Start("result2.xlsx");}//自定义一个方法将文本绘制成图片并设置文本格式,包括字体,字体颜色、背景色、字体大小等private static Image DrawText(String text, System.Drawing.Font font, Color textColor, Color backColor, double height, double width){//将用来作为水印的文本返回为图片并设置其展示样式Image img = new Bitmap((int)width, (int)height);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;}
注意:这种方法只有在打印预览或者将试图模式调整为“页面视图”时才可见水印。
水印添加效果:
阅读结束!
如需转载请注明出处!
转载于:https://blog.51cto.com/eiceblue/2122711
C# 添加Excel水印相关推荐
- Java 实现添加office水印
因为spire免费版无法整合springboot项目上会自动注入然后编译解析错误(好恶心)所以自己用POI写了个简易的 引入依赖 org.apache.poi:poi:5.2.1 直接上代码 impo ...
- Java 添加 Excel 文本水印和图片水印及,及其他操作文档
1.e-iceblue 文档地址: Java 添加 Excel 文本水印和图片水印 2.首先,在 pom.xml 文件中配置 Maven 仓库路径. <repositories><r ...
- java为word、excel、pdf、ppt、图片添加图片水印(文字水印同理)
使用idea开发,所需依赖如下: spire的下载.使用,代码中会给出网址.idea中选中右键,添加为库即可使用 <!--使用spire,导入的jar--> <dependency& ...
- C# 添加Word水印(基于Spire.Cloud.SDK for .NET )
概述 Spire.Cloud.SDK for .NET 提供了watermarksApi接口可用于添加水印,包括添加文本水印(SetTextWatermark).图片水印(SetImageWaterm ...
- 如何批量给pdf文件添加文字水印?
工作中我们会给重要的办公文件文件水印,给文件加上公司的名称等,这样可以有效防止文件内容被别人盗用抄袭,其中就包括word.Excel.PPT.图片.PDF等文件.PDF文件由于其特殊性,越来越成为最常 ...
- java monogodb 图片 pdf 下载添加单个水印 铺满水印
这是基于monogodb 下载后添加水印的介绍 不管你现在用的是本地下载还是其他的服务器 输出后的结果都是添加水印 基本的操作一样的都是通过流下载的然后添加水印 ! 这边的所有操作都是基于这个官网的 ...
- Springboot中给图片添加文字水印
Springboot中给图片添加文字水印 工作中遇到给图片添加文字水印的需求,记录下来方便之后查阅 需求内容: 给一张图片添加指定文字水印,使一张图片上有多个水印内容,并且设定一个水印开关,可指定是否 ...
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...
- php生成背景并加字,PHP给图片添加文字水印实例
PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图,自定义设置水印背景色.文字颜色.字体等. 水印类water.class.php var $Path = "./"; / ...
- C#.NET 添加图片水印
using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; us ...
最新文章
- C++中this指针的用法.
- leetCode 两个数组的交集 II 问题记录
- Re题目------Enm.exe
- LiveVideoStack线上分享第四季(二):基于内容的自适应视频传输算法及其应用...
- 计算机系统维护技术txt,计算机系统维护技术A卷
- mongodb报错 An error occurred while loading navigation: topology was destroyed
- 【牛客 - 331E】炫酷划线(权值线段树,树状数组哈希,随机数)
- 手机屏坏了怎么把里面存东西取出来_手机又卡了,到底是运行不够还是存储容量不足?1分钟搞懂...
- 话里话外:企业ERP实施的前前后后(二)
- HTML5模板生成工具
- Allied Vision相机
- c4d支持mac系统渲染器有哪些_C4D的几大主流渲染器
- 微型计算机煎蛋网,煎蛋网 No.4950004
- 人生代代无穷已,江月年年望相似——读《明朝那些事儿》有感
- 刚入职的新人如何快速了解公司业务--转载
- 三菱FX2NPLC 定时器和计数器(1)
- 微信聊天记录没有备份可以恢复吗?吐血整理分享
- ionic框架中TABS中tabs-striped条形切换问题
- ESP8266-Arduino编程实例-LIS3MDL磁场传感器驱动
- latex左侧大括号 latex中大括号多行公式
热门文章
- LeapFTP3.1注册码
- 匠能电子:55寸0.88mm拼接屏与1.7mm拼接屏的对比效果
- python 通达信公式函数,python使用通达信公式,请人用python编写如下公式,我对编程一窍不通...
- 【面包板电子制作130例仿真】简单变调电子门铃
- AE After Effect 渲染如何输出设置
- 多目标进化算法(MOEA)概述
- 浅谈微信卡券功能开发(2)
- iphone没有计算机功能,苹果iPad为什么没有计算器应用程序
- android极光推送问题,极光推送- 常见问题 - 极光文档
- java smali_如何把java代码转换成smali代码