C# 给 Excel 工作表添加水印
来源:互联网 发布:java手机编译器aide 编辑:程序博客网 时间:2024/06/05 08:17
本文将介绍如何使用Spire.XLS组件给Excel工作表添加水印。Microsoft Excel没有直接的方法内置水印在Excel工作表中,我们可以通过添加背景图片在视觉上形成独特的水印效果,但是此类背景水印在打印Excel文档时水印图案会丢失。同时,我们也可以通过添加页眉页脚功能,将图片或文字加到Excel文档内容背后,实现类似水印的效果。但是该类水印只在打印预览或将视图模式为“页面视图”下才能直观可见。
通常情况下,水印分为文本水印和图片水印。Spire.XLS添加的水印实际上都为图片水印。下面我们将详细介绍使用Spire.XLS将文本以图片形式添加到Excel中, 生成文本水印。
添加背景文本图片水印
static void Main(string[] args){ //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile("Test.xlsx"); //设置水印文字和字体 Font font = new Font("宋体", 36); 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){ //加载Excel文档 Workbook workbook = new Workbook(); workbook.LoadFromFile("Test.xlsx"); //设置水印文字和字体 Font font = new Font("宋体", 36);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); //插入图片作为LeftHeaderImage sheet.PageSetup.LeftHeaderImage = imgWtrmrk; sheet.PageSetup.LeftHeader = "&G"; //设置视图模式,页眉水印仅在Layout模式下直观可见 sheet.ViewMode = ViewMode.Layout;}//保存文档并预览 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;}
阅读全文
0 0
- C# 给 Excel 工作表添加水印
- C# 给Excel添加水印
- C#中如何给Excel添加水印
- C# 给图片添加水印
- C# 给PDF文件添加水印
- C# 给word文档添加水印
- C# 给word文档添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- 给图片添加水印
- C# 给Excel表格添加超链接
- strace命令
- LeetCode-560. Subarray Sum Equals K
- 【第1143期】优化移动端window.onscroll的执行频率方案
- 12.18
- v5填报展现正常但提交时报对象错误的排查
- C# 给 Excel 工作表添加水印
- #30秒理解代码# 求数组最大值、最小值
- 【广告】前端架构师独家揭秘:月薪30k难吗?
- 51nod 1272 最大距离 -暴力
- c语言指针题(1)
- 高可用高性能yii2.0
- 求生大逃亡
- 重磅下载!678页阿里内部技术干货
- MySQL存储类型选择