有时候我们在做一些表格的时候,希望可以在表格中显示出自己的水印,彰显一下自己的特点,下面我们介绍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
1、打开后点文件——新建——大小设置为650px*650px。背景内容选:透明,点确定。2、用Photoshop打开你要使用的图标、或者头像,拖动到刚才建立的透明图里。3、点击左边工具栏的T,可以在图上写字(字体可以在左上角选择更。
------为全部工作表设置可打印的水印-------
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工作表添加水印,代码如下:
---------添加背景文本图片水印------------
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()方法创建的图片
sheet.PageSetup.BackgoundImage = imgWtrmrk as Bitmap;
}
/保存文档并预览
System.Diagnostics.Process.Start("result.xlsx");
}
private static Image DrawText(String text,System.Drawing.Fontfont,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);
用Photoshop CS6制作水印 打开Photoshop CS6,新建一个图层,大小自己设置如下图。点击T,输入要制作水印的文字。调整想要的字体大小等。右键单击文字所在的图层,选择删格化文字,双击文字所在的图层,出现图层样式对话框后在 。
Brush textBrush = new SolidBrush(textColor);
drawing.DrawString(text,font,textBrush,((int)width -textSize.Width) / 2,((int)height - textSize.Height) / 2);
1、打开photoshop软件,如下图所示:2、新建一个1000*1000的画布,如下图所示:3、使用字体,打出自己想要的水印文字,如下图所示:4、选择文字图层,将填充调为0,如下图所示:5、双击文字图层,打开设置效果,如下图所。
drawing.Save();
return img;
}
当然,没有人会为了加个水印去制作一个插件,就像没人会给水沟修座桥,当然要是开发插件的话,那有这样一个小功能,就必须要有了哦。