最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中給Excel添加水印的具體方法

 更新時間:2016年09月28日 10:35:41   作者:Yesi  
這篇文章主要介紹了C#中如何給Excel添加水印,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們知道Microsoft Excel并沒有內置的功能直接給Excel表添加水印,但是其實我們可以用其他變通的方式來解決此問題,如通過添加頁眉圖片或藝術字的方法來模仿水印的外觀。所以在這篇文章中,我將向您演示來如何通過在Excel中創(chuàng)建和插入頁眉圖片來為excel添加水印。之前我也分享了如何給word文檔添加水印和pdf文件添加水印的方法,有需要也可以參考。

這里我下載了一個E-iceblue公司開發(fā)的免費版的Excel組件- Free Spire.XLS,這樣既節(jié)省時間,又簡化了代碼。

控件安裝后,創(chuàng)建項目,添加安裝目錄下的dll文件作為項目的引用,并添加如下命名空間:

using System;
using System.Drawing;
using System.Windows.Forms;
using Spire.Xls; 

這是原excel表的截圖:

以下是詳細步驟和代碼片段:

步驟1:首先定義一個DrawText()方法,并在字符串的內容基礎上創(chuàng)建一個圖片。字符串可以是“機密”、“草稿”、“樣品”或任何你想要顯示為水印的文本。

private static System.Drawing.Image DrawText(String text, System.Drawing.Font font, Color textColor, Color backColor, double height, double width) <br>{
 //創(chuàng)建一個指定寬度和高度的位圖圖像
 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);
 //創(chuàng)建文本刷
 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()方法新建一個圖片,并將頁眉圖片設置為左對齊。其次,因為在視圖模式是布局的狀態(tài)下頁眉圖片才會顯示,所以一定要記得將視圖模式改為布局。

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";
 //水印只會在此種模式下顯現(xiàn)
 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";
    //水印只會在此種模式下顯現(xiàn)
    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)
  {
   //創(chuàng)建一個指定寬度和高度的位圖圖像
   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);
   //創(chuàng)建文本刷
   Brush textBrush = new SolidBrush(textColor);
   drawing.DrawString(text, font, textBrush, ((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
   drawing.Save();
   return img;
  }
 
 } 
}

 感謝您的瀏覽,希望本文能給您帶來一定的幫助。

相關文章

  • winform c#中子窗體關閉刷新父窗體的實例

    winform c#中子窗體關閉刷新父窗體的實例

    下面小編就為大家?guī)硪黄獁inform c#中子窗體關閉刷新父窗體的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • C#中的Socket編程詳解

    C#中的Socket編程詳解

    本文詳細講解了C#中的Socket編程,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 詳解C# 結構體

    詳解C# 結構體

    這篇文章主要介紹了C# 結構體的的相關資料,文中示例代碼非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C# WPF編程之命令模型詳解

    C# WPF編程之命令模型詳解

    這篇文章主要為大家詳細介紹了C# WPF編程中命令模型的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • C#事件管理器如何清空所有監(jiān)聽詳解

    C#事件管理器如何清空所有監(jiān)聽詳解

    這篇文章主要給大家介紹了關于C#事件管理器如何清空所有監(jiān)聽的相關資料,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07
  • C#去掉字符串中所有匹配的字符String.Replace方法

    C#去掉字符串中所有匹配的字符String.Replace方法

    在C#中,如果你想要去掉字符串中所有匹配的字符,你可以使用String.Replace方法,本文主要介紹了C#去掉字符串中所有匹配的字符String.Replace方法,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • unity自帶尋路(導航)系統(tǒng) Nav Mesh導航網格

    unity自帶尋路(導航)系統(tǒng) Nav Mesh導航網格

    這篇文章主要為大家詳細介紹了unity自帶尋路(導航)系統(tǒng),Nav Mesh導航網格,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • CDMA 貓用AT命令發(fā)中文短信(C#)

    CDMA 貓用AT命令發(fā)中文短信(C#)

    CDMA貓連PDU都不支持,只能發(fā)文本短信。而且發(fā)中文短信居然是UNICODE,無法在超級終端里輸入。只能寫程序。網上這個問題談論地比較多,做起來比較累,還偶爾會出亂碼。還是將C#的成功代碼帖一下吧。
    2009-08-08
  • C#實現(xiàn)子窗體與父窗體通信方法實例總結

    C#實現(xiàn)子窗體與父窗體通信方法實例總結

    這篇文章主要介紹了C#實現(xiàn)子窗體與父窗體通信方法,實例總結了常用的四種窗體通信方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • C#給PDF文件添加水印

    C#給PDF文件添加水印

    這篇文章主要為大家詳細介紹了C#給PDF文件添加水印的相關代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論

武夷山市| 嵊泗县| 石河子市| 密山市| 女性| 山阴县| 汽车| 香港| 远安县| 横峰县| 通化市| 兴海县| 揭西县| 泸水县| 宁化县| 微博| 安岳县| 密山市| 海原县| 宁陕县| 获嘉县| 修水县| 巩留县| 广昌县| 天峻县| 望江县| 武定县| 昆山市| 汉源县| 娱乐| 永城市| 镶黄旗| 天峨县| 涪陵区| 玛纳斯县| 那曲县| 苍南县| 阳春市| 定陶县| 新宾| 赞皇县|