我们知道,在Excel中不容易直接实现添加水印的效果,但是Excel数据表格作为重要的办公文档之一,通过添加水印来实现防伪或者声明资料是很有必要的。鉴于此,本文将介绍如何给Excel工作表添加水印的方法。这里分以下两种情况:

  1. 通过添加背景图片来实现水印效果
  2. 通过页眉页脚添加图片水印效果。下面作详细介绍
    所用工具: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水印相关推荐

  1. Java 实现添加office水印

    因为spire免费版无法整合springboot项目上会自动注入然后编译解析错误(好恶心)所以自己用POI写了个简易的 引入依赖 org.apache.poi:poi:5.2.1 直接上代码 impo ...

  2. Java 添加 Excel 文本水印和图片水印及,及其他操作文档

    1.e-iceblue 文档地址: Java 添加 Excel 文本水印和图片水印 2.首先,在 pom.xml 文件中配置 Maven 仓库路径. <repositories><r ...

  3. java为word、excel、pdf、ppt、图片添加图片水印(文字水印同理)

    使用idea开发,所需依赖如下: spire的下载.使用,代码中会给出网址.idea中选中右键,添加为库即可使用 <!--使用spire,导入的jar--> <dependency& ...

  4. C# 添加Word水印(基于Spire.Cloud.SDK for .NET )

    概述 Spire.Cloud.SDK for .NET 提供了watermarksApi接口可用于添加水印,包括添加文本水印(SetTextWatermark).图片水印(SetImageWaterm ...

  5. 如何批量给pdf文件添加文字水印?

    工作中我们会给重要的办公文件文件水印,给文件加上公司的名称等,这样可以有效防止文件内容被别人盗用抄袭,其中就包括word.Excel.PPT.图片.PDF等文件.PDF文件由于其特殊性,越来越成为最常 ...

  6. java monogodb 图片 pdf 下载添加单个水印 铺满水印

    这是基于monogodb 下载后添加水印的介绍  不管你现在用的是本地下载还是其他的服务器 输出后的结果都是添加水印 基本的操作一样的都是通过流下载的然后添加水印 ! 这边的所有操作都是基于这个官网的 ...

  7. Springboot中给图片添加文字水印

    Springboot中给图片添加文字水印 工作中遇到给图片添加文字水印的需求,记录下来方便之后查阅 需求内容: 给一张图片添加指定文字水印,使一张图片上有多个水印内容,并且设定一个水印开关,可指定是否 ...

  8. Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)

    想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...

  9. php生成背景并加字,PHP给图片添加文字水印实例

    PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图,自定义设置水印背景色.文字颜色.字体等. 水印类water.class.php var $Path = "./"; / ...

  10. C#.NET 添加图片水印

    using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; us ...

最新文章

  1. C++中this指针的用法.
  2. leetCode 两个数组的交集 II 问题记录
  3. Re题目------Enm.exe
  4. LiveVideoStack线上分享第四季(二):基于内容的自适应视频传输算法及其应用...
  5. 计算机系统维护技术txt,计算机系统维护技术A卷
  6. mongodb报错 An error occurred while loading navigation: topology was destroyed
  7. 【牛客 - 331E】炫酷划线(权值线段树,树状数组哈希,随机数)
  8. 手机屏坏了怎么把里面存东西取出来_手机又卡了,到底是运行不够还是存储容量不足?1分钟搞懂...
  9. 话里话外:企业ERP实施的前前后后(二)
  10. HTML5模板生成工具
  11. Allied Vision相机
  12. c4d支持mac系统渲染器有哪些_C4D的几大主流渲染器
  13. 微型计算机煎蛋网,煎蛋网 No.4950004
  14. 人生代代无穷已,江月年年望相似——读《明朝那些事儿》有感
  15. 刚入职的新人如何快速了解公司业务--转载
  16. 三菱FX2NPLC 定时器和计数器(1)
  17. 微信聊天记录没有备份可以恢复吗?吐血整理分享
  18. ionic框架中TABS中tabs-striped条形切换问题
  19. ESP8266-Arduino编程实例-LIS3MDL磁场传感器驱动
  20. latex左侧大括号 latex中大括号多行公式

热门文章

  1. LeapFTP3.1注册码
  2. 匠能电子:55寸0.88mm拼接屏与1.7mm拼接屏的对比效果
  3. python 通达信公式函数,python使用通达信公式,请人用python编写如下公式,我对编程一窍不通...
  4. 【面包板电子制作130例仿真】简单变调电子门铃
  5. AE After Effect 渲染如何输出设置
  6. 多目标进化算法(MOEA)概述
  7. 浅谈微信卡券功能开发(2)
  8. iphone没有计算机功能,苹果iPad为什么没有计算器应用程序
  9. android极光推送问题,极光推送- 常见问题 - 极光文档
  10. java smali_如何把java代码转换成smali代码