C#中給Excel添加水印的詳細辦法。本站提示廣大學習愛好者:(C#中給Excel添加水印的詳細辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中給Excel添加水印的詳細辦法正文
我們曉得Microsoft Excel並沒有內置的功效直接給Excel表添加水印,然則其實我們可以用其他變通的方法來處理此成績,如經由過程添加頁眉圖片或藝術字的辦法來模擬水印的外不雅。所以在這篇文章中,我將向您演示來若何經由過程在Excel中創立和拔出頁眉圖片來為excel添加水印。之前我也分享了若何給word文檔添加水印和pdf文件添加水印的辦法,有須要也能夠參考。
這裡我下載了一個E-iceblue公司開辟的收費版的Excel組件- Free Spire.XLS,如許既節儉時光,又簡化了代碼。
控件裝置後,創立項目,添加裝置目次下的dll文件作為項目標援用,並添加以下定名空間:
using System; using System.Drawing; using System.Windows.Forms; using Spire.Xls;
這是原excel表的截圖:
以下是具體步調和代碼片斷:
步調1:起首界說一個DrawText()辦法,並在字符串的內容基本上創立一個圖片。字符串可所以“秘密”、“草稿”、“樣品”或任何你想要顯示為水印的文本。
private static System.Drawing.Image DrawText(String text, System.Drawing.Font font, Color textColor, Color backColor, double height, double width) <br>{ //創立一個指定寬度和高度的位圖圖象 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; }
步調2:初始化一個新的任務簿並加載添加水印的文件。
Workbook workbook = new Workbook(); workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");
步調3:挪用DrawText()辦法新建一個圖片,並將頁眉圖片設置為左對齊。其次,由於在視圖形式是結構的狀況下頁眉圖片才會顯示,所以必定要記得將視圖形式改成結構。
Font font = new System.Drawing.Font("arial", 40); String watermark = "外部材料"; foreach (Worksheet sheet in workbook.Worksheets) { //挪用DrawText()辦法新建圖片 System.Drawing.Image imgWtrmrk = DrawText(watermark, font, System.Drawing.Color.LightCoral, System.Drawing.Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth); //將頁眉圖片設置為左對齊 sheet.PageSetup.LeftHeaderImage = imgWtrmrk; sheet.PageSetup.LeftHeader = "&G"; //水印只會在此種形式下浮現 sheet.ViewMode = ViewMode.Layout; }
步調4:保留並翻開文件。
workbook.SaveToFile("水印.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("水印.xlsx");
後果圖:
全體代碼:
using System; using System.Drawing; using System.Windows.Forms; using Spire.Xls; namespace Add_Watermark_To_Excel { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //初始化一個新任務簿並加載要添加水印的文件 Workbook workbook = new Workbook(); workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx"); //在頁眉拔出圖片 Font font = new System.Drawing.Font("arial", 40); String watermark = "外部材料"; foreach (Worksheet sheet in workbook.Worksheets) { //挪用DrawText()辦法新建圖片 System.Drawing.Image imgWtrmrk = DrawText(watermark, font, System.Drawing.Color.LightCoral, System.Drawing.Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth); //將頁眉圖片設置為左對齊 sheet.PageSetup.LeftHeaderImage = imgWtrmrk; sheet.PageSetup.LeftHeader = "&G"; //水印只會在此種形式下浮現 sheet.ViewMode = ViewMode.Layout; } workbook.SaveToFile("水印.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("水印.xlsx"); } <br> private static System.Drawing.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; } } }
感激您的閱讀,願望本文能給您帶來必定的贊助。