C# 添加Excel水印

2025-04-20 14:57:21

1、【C#】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; }PS:需要注意的是,这种方法添加的背景水印无法实现打印效果,但日常无纸化办公环境中,该方法也能很好的满足需求。

C# 添加Excel水印
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:24
  • 阅读量:44
  • 阅读量:76
  • 阅读量:38
  • 阅读量:20
  • 猜你喜欢