91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C# 添加Excel水印

發布時間:2020-08-10 22:40:10 來源:網絡 閱讀:1735 作者:E_iceblue 欄目:編程語言

我們知道,在Excel中不容易直接實現添加水印的效果,但是Excel數據表格作為重要的辦公文檔之一,通過添加水印來實現防偽或者聲明資料是很有必要的。鑒于此,本文將介紹如何給Excel工作表添加水印的方法。這里分以下兩種情況:

  1. 通過添加背景圖片來實現水印效果
  2. 通過頁眉頁腳添加圖片水印效果。下面作詳細介紹
    所用工具:Free Spire.XLS for .NET
    PS:下載安裝該組件,在項目程序中添加引用該安裝目錄下的dll文件,并添加如下命名空間:
    using System;
    using Spire.Xls;
    using System.Drawing;

方法一:添加背景圖片式文本水印

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;
        }

需要注意的是,這種方法添加的背景水印無法實現打印效果,但日常無紙化辦公環境中,該方法也能很好的滿足需求。
水印添加效果:
C# 添加Excel水印

方法二、添加頁眉圖片水印

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, 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("result2.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("result2.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;
        }

注意:這種方法只有在打印預覽或者將試圖模式調整為“頁面視圖”時才可見水印。

水印添加效果:
C# 添加Excel水印

閱讀結束!
如需轉載請注明出處!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石台县| 富宁县| 黄山市| 淮安市| 巩留县| 玉溪市| 汉寿县| 都安| 青州市| 河北区| 堆龙德庆县| 迁西县| 连平县| 甘谷县| 屏东市| 上虞市| 湘潭市| 安化县| 濮阳县| 澄迈县| 全椒县| 通榆县| 大安市| 吴川市| 淅川县| 汪清县| 榆林市| 柘城县| 绥芬河市| 安康市| 从化市| 永清县| 临高县| 西平县| 桃园县| 周宁县| 文山县| 卢龙县| 株洲市| 名山县| 温泉县|