excel中如何做水印(excel2010水印怎么弄)

来源:一方Excel

有时候我们在做一些表格的时候,希望可以在表格中显示出自己的水印,彰显一下自己的特点,下面我们介绍3种设置Excel水印的方法,来

首先,第一种方法是常规的方法,点击插入选项卡—点击图片–设置图片格式—颜色—冲蚀,这样就将图片设置到页眉了,然后我们这边将焦点放在“&[图片]”前面,然后回车再回车,将水印设置到合适的位置,这样就可以了,当然这种方法的话,水印是只有打印的时候才可以看得到,打印出来后会显示在表中。

第二中方法,效果也是跟上面这种类似,也要打印的时候才能显示出来,或者在页面布局模式中才能看得到,先添加以下代码,

——为单个工作表设置可打印的水印——-

Sub 为工作表设置可打印的水印()

Dim Pic As String, rng As Range ‘声明变量

Pic = Application.GetOpenFilename(“图片文件 (*.jpg; *.bmp),*.jpg; *.bmp”) ‘弹出对话框,让用户选择一张作为水印的图片

If Pic = “False” Then Exit Sub ‘如果未选择图片则结束程序

ActiveSheet.PageSetup.LeftHeaderPicture.Filename = Pic ‘指定图片页眉的图片路径

ActiveSheet.PageSetup.LeftHeader = “&G” ‘让左边页眉显示图片

End Sub

——为全部工作表设置可打印的水印——-

Sub 为所有工作表设置可打印的水印()

Dim Pic As String, rng As Range, sht As Worksheet ‘声明变量

Pic = Application.GetOpenFilename(“图片文件 (*.jpg; *.bmp),*.jpg; *.bmp”) ‘弹出对话框,让用户选择一张作为水印的图片

If Pic = “False” Then Exit Sub ‘如果未选择图片则结束程序

For Each sht In Worksheets ‘遍历所有工作表

sht.PageSetup.LeftHeaderPicture.Filename = Pic ‘指定图片页眉的图片路径

sht.PageSetup.LeftHeader = “&G” ‘让左边页眉显示图片

Next sht

End Sub

效果如下:

从上面两个例子可以看到,该类水印只在打印预览或将视图模式为“页面视图”下才能直观可见,正常模式下我们是看不到这个水印的,这就比较坑爹了,当然我们可以设置一些图片的透明度,然后用VBA代码设置为不可编辑,但是这样做有一个问题,就是很容易被更改掉,毕竟,Excel的加密安全性太低,所以,如果我们要在Excel中添加在常规模式下可见的图片水印或者文字水印,可以用Visual studio里面制作一个插件,使用Spire.XLS组件给Excel工作表添加水印,代码如下:

———添加背景文本图片水印————

  1. static void Main(string[] args)
  2. {
  3. //加载Excel文档
  4. Workbook workbook = new Workbook();
  5. workbook.LoadFromFile(“Test.xlsx”);
  6. //设置水印文字和字体
  7. Font font = new Font(“宋体”, 36);
  8. String watermark = “背景水印”;
  9. //设置背景图片为水印
  10. foreach (Worksheet sheet in workbook.Worksheets)
  11. {
  12. //调用DrawText()方法创建的图片
  13. Image imgWtrmrk = DrawText(watermark, font,Color.LightCoral,Color.White, sheet.PageSetup.PageHeight,sheet.PageSetup.PageWidth);
  14. sheet.PageSetup.BackgoundImage = imgWtrmrk as Bitmap;
  15. }
  16. //保存文档并预览
  17. workbook.SaveToFile(“result.xlsx”, ExcelVersion.Version2010);
  18. System.Diagnostics.Process.Start(“result.xlsx”);
  19. }
  20. private static Image DrawText(String text, System.Drawing.Fontfont,Color textColor, Color backColor, double height, double width)
  21. {
  22. //将用来作为水印的文本返回为图片并设置其展示样式
  23. Image img = new Bitmap((int)width, (int)height);
  24. Graphics drawing = Graphics.FromImage(img);
  25. SizeF textSize = drawing.MeasureString(text, font);
  26. drawing.TranslateTransform(((int)width – textSize.Width) / 2,((int)height – textSize.Height) / 2);
  27. drawing.RotateTransform(-45);
  28. drawing.TranslateTransform(-((int)width – textSize.Width) / 2,-((int)height – textSize.Height) / 2);
  29. drawing.Clear(backColor);
  30. Brush textBrush = new SolidBrush(textColor);
  31. drawing.DrawString(text, font, textBrush, ((int)width -textSize.Width) / 2, ((int)height – textSize.Height) / 2);
  32. drawing.Save();
  33. return img;
  34. }

当然,没有人会为了加个水印去制作一个插件,就像没人会给水沟修座桥,当然要是开发插件的话,那有这样一个小功能,就必须要有了哦。

(0)
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 FB8260@QQ.COM 举报,一经查实,立刻删除。