欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET讀寫(xiě)Excel工具Spire.Xls使用 Excel文件的控制(2)

 更新時(shí)間:2017年11月20日 10:33:13   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了.NET讀寫(xiě)Excel工具Spire.Xls使用,Excel文件的控制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前一篇文章:“ .NET操作Excel利器Spire.Xls使用(1)入門介紹 ”給大家介紹了Spire.XLS的基本功能和一些比較。這篇文章將重點(diǎn)介紹C#操作Excel文件時(shí),對(duì)Excel文件本身的相關(guān)設(shè)置,全局控制的內(nèi)容。因?yàn)檫@也是C#讀寫(xiě)Excel文件時(shí)經(jīng)常碰到的文章,也是我在使用過(guò)程中的一個(gè)學(xué)習(xí)步驟。本文將首先介紹Spire.XLS創(chuàng)建和加載文檔的基礎(chǔ)知識(shí),以及文件保存,多個(gè)Excel文件合并的操作方法,其中我們還可以對(duì)生成的Excel文件做更多詳細(xì)的設(shè)置,如,對(duì)Excel文件屬性進(jìn)行設(shè)置等等,其次很多項(xiàng)目中,不僅要生成Excel文件,還需要打印并獲取一些分頁(yè)信息;最后介紹一下使用C#設(shè)置加密保護(hù)Excel文件的方法。

1.Excel文檔的創(chuàng)建、加載與保存

  我們的上一篇文章的初步介紹中,有一個(gè)Hello Excel的例子,其實(shí)就已經(jīng)包括了Excel文件新建和保存的方法,非常簡(jiǎn)單。這一節(jié)將著重對(duì)每個(gè)細(xì)節(jié)進(jìn)行更詳細(xì)點(diǎn)的研究。

1.1 保存Excel文件

  Excle文件的保存都是使用Workbook的SaveToFile方法,有以下幾個(gè)版本,可以根據(jù)自己的需要,根據(jù)文件名,Excel文件版本,以及文件格式來(lái)保存,方法原型如下,比較簡(jiǎn)單不再演示,在后續(xù)的文章中會(huì)在代碼中用到。

//根據(jù)文件名,文件版本,文件格式信息來(lái)保存文件
public void SaveToFile(string fileName);
public void SaveToFile(string fileName, ExcelVersion version);
public void SaveToFile(string fileName, FileFormat fileFormat);
public void SaveToFile(string fileName, string separator);

1.2 從不同途徑加載Excel

  使用C#操作Excel文件,不一定都是生成Excel文件報(bào)表之類的,有時(shí)候也需要加載已經(jīng)存在的數(shù)據(jù)(XML,Excle等)來(lái)進(jìn)行修改,然后保存到對(duì)應(yīng)的Excel文件中去。加載到Excel的方法是Workbook對(duì)象的LoadFromFile、LoadFromStream、LoadFromXml等方法,方法原型有以下幾個(gè):

//從文件加載,根據(jù)文件名,保護(hù)模式和Excel版本
public void LoadFromFile(string fileName);
public void LoadFromFile(string fileName, bool preserveMode);
public void LoadFromFile(string fileName, ExcelVersion version);
public void LoadFromFile(string fileName, string separator);
public void LoadFromFile(string fileName, string separator, int row, int column);
public void LoadFromFile(string fileName, string separator, int row, int column, ExcelVersion version);
//從數(shù)據(jù)流中加載
public void LoadFromStream(Stream stream);
public void LoadFromStream(Stream stream, bool loadStyles);
public void LoadFromStream(Stream stream, ExcelVersion version);
//從XML文件加載
public void LoadFromXml(Stream stream);
public void LoadFromXml(string fileName);
//從模版文件加載
public void LoadTemplateFromFile(string fileName);
public void LoadTemplateFromFile(string fileName, bool loadStyles);

2.C#設(shè)置Excel文件屬性

  文件屬性這個(gè)雖然一般人很少用到,但還是介紹一下,畢竟如果文件分發(fā)出去的話,將相關(guān)屬性信息添加完整,還是很有必要的。Excel文件屬性可以點(diǎn)擊文件右鍵-屬性看到界面,如下圖我使用WPS查看的Excel文件屬性,使用Office Excel查看的話,是右邊的樣子,雖然顯示不一樣,但原理是一樣的:


1.WPS顯示的Excel屬性                                        2.Office Excle顯示的文件屬性

  設(shè)置Excel文件屬性的方法在Workbook對(duì)象的DocumentProperties屬性中,這個(gè)屬性是一個(gè)XlsBuiltInDocumentProperties類型,在Spire.Xls.Core.Spreadsheet.Collections命名空間,通過(guò)VS的對(duì)象瀏覽器也可以發(fā)現(xiàn)其實(shí)現(xiàn)的一些原理,可以擴(kuò)展到其他的組件使用中??纯匆粋€(gè)簡(jiǎn)單的例子:

#region 2.Excel文件屬性例子
static void ExcelTest2()
{   
 Workbook workbook = new Workbook();

 //修改文檔屬性信息,這樣在發(fā)布的時(shí)候,可以通過(guò)文檔顯示公司以及文件人的信息
 workbook.DocumentProperties.Author = "張三";   //作者
 workbook.DocumentProperties.Subject = "測(cè)試文件屬性"; //主題
 workbook.DocumentProperties.Title = "測(cè)試Excel文件"; //標(biāo)題
 workbook.DocumentProperties.Company = "XX有限公司";  //單位
 workbook.DocumentProperties.Comments = "保留文件評(píng)論"; //評(píng)論
 workbook.DocumentProperties.Keywords = "測(cè)試 Excel "; //關(guān)鍵詞
 workbook.DocumentProperties.CreatedTime = DateTime.Now; //創(chuàng)建時(shí)間
 //TODO:還有其他屬性,可以參考XlsBuiltInDocumentProperties的相關(guān)屬性   

 //將Excel文件保存到指定文件,還可以指定Excel版本
 workbook.SaveToFile("Sample.xls", ExcelVersion.Version2007);
}
#endregion

  注意,由于我沒(méi)有安裝Office 2007及以上版本,用WPS顯示的時(shí)候,有點(diǎn)問(wèn)題,要用WPS轉(zhuǎn)換為2003版本后才能看出來(lái),這可能是WPS的原因,調(diào)試生成的文件發(fā)現(xiàn),這些屬性值都是存在的。所以我也沒(méi)去折騰,安裝個(gè)Office 真的很麻煩。

3.C#加密和保護(hù)Excel文件

  相信很多人都用過(guò)Office的加密以及保護(hù)功能,對(duì)于Excel來(lái)說(shuō),加密和保護(hù)的范圍更加廣泛了:不僅可以加密文件,還可以保護(hù)指定的Sheet,指定的單元格等等。

3.1 加密Excel文件

  Excel文件級(jí)的加密其實(shí)很簡(jiǎn)單,就是Workbook對(duì)象的Protect方法,傳遞加密密碼即可;如果想要取消密碼,則使用workbook.UnProtect(),注意取消加密是不需要密碼的,Excel軟件操作也是的,所以程序操作也不需要。

#region 3.加密Excel文件例子
static void ExcelTest3()
{
 Workbook workbook = new Workbook();
 workbook.Protect("pwd111");//設(shè)置保護(hù)加密的 密碼 :pwd111
 //將Excel文件保存
 workbook.SaveToFile("Sample.xls", ExcelVersion.Version2007);
}
#endregion

加密后打開(kāi)文件就是這個(gè)樣子了:

3.2 保護(hù)Sheet與單元格

   Sheet的保護(hù)更加靈活一點(diǎn),使用的是Worksheet對(duì)象的Protect方法,傳遞的參數(shù)是 保護(hù)的密碼,以及可選的保護(hù)類型(更加豐富的保護(hù)類型),看看下面的例子:

Workbook workbook = new Workbook();

Worksheet sheet = workbook.Worksheets[0];

//保護(hù)sheet
sheet.Protect("test", SheetProtectionType.All);

//將Excel文件保存
workbook.SaveToFile("Sample.xlsx", ExcelVersion.Version2010);

實(shí)現(xiàn)的效果應(yīng)該和WPS的“保護(hù)工作表”界面類似,如下圖:

保護(hù)工作表的作用一般是防止誤操作或者對(duì)于有版權(quán)保護(hù)的,不能輕易更改的情況。大家看情況使用,我這里很少用到,只是了解到了,順便說(shuō)一下。

static void ExcelTest4()
{
 Workbook workbook = new Workbook();
 workbook.CreateEmptySheets(1);
 Worksheet sheet = workbook.Worksheets[0];

 sheet.Range["A1"].Text = "鎖定";
 sheet.Range["B1"].Text = "未鎖定";

 sheet.Range["A1"].Style.Locked = true;
 sheet.Range["B1"].Style.Locked = false;

 //一定要對(duì)工作表進(jìn)行保護(hù),才能生效
 sheet.Protect("test", SheetProtectionType.All);

 workbook.SaveToFile(@"Sample_Lock.xlsx", ExcelVersion.Version2010);
}

  今天就到此為止把,雖然都很簡(jiǎn)單,但了解一下,對(duì)以后熟練開(kāi)發(fā)還是有好處的。例子非常簡(jiǎn)單,代碼都在上面,到本系列完成后,再打包一份代碼。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ASP.NET MVC分頁(yè)問(wèn)題解決

    ASP.NET MVC分頁(yè)問(wèn)題解決

    這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC分頁(yè)問(wèn)題的解決方法,Ajax.Pager分頁(yè)的使用注意事項(xiàng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • ASP.NET MVC小結(jié)之基礎(chǔ)篇(一)

    ASP.NET MVC小結(jié)之基礎(chǔ)篇(一)

    本文是ASP.NET MVC系列的第一篇文章,跟其他學(xué)習(xí)系列一樣,咱們先來(lái)點(diǎn)基礎(chǔ)知識(shí),之后再循序漸進(jìn)。我們先從asp.net mvc的概念開(kāi)始吧。
    2014-11-11
  • asp.net 刪除,更新數(shù)據(jù)庫(kù)方法

    asp.net 刪除,更新數(shù)據(jù)庫(kù)方法

    asp.net 刪除,更新數(shù)據(jù)庫(kù)方法
    2009-07-07
  • Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查

    Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查

    這篇文章介紹了Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • ASP.NET?Core通用主機(jī)的系統(tǒng)配置

    ASP.NET?Core通用主機(jī)的系統(tǒng)配置

    這篇文章介紹了ASP.NET?Core通用主機(jī)系統(tǒng)配置的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • asp.net 支付寶及時(shí)到帳接口使用詳解

    asp.net 支付寶及時(shí)到帳接口使用詳解

    這兩天寫(xiě)支付寶接口, 這個(gè)話題不新了, 因?yàn)楹芏嗳硕?做過(guò)了, 在這里我說(shuō)說(shuō)我的看法吧, 先說(shuō)一下實(shí)現(xiàn)
    2010-03-03
  • Asp.net移除Server,X-Powered-By和X-AspNet-Version頭

    Asp.net移除Server,X-Powered-By和X-AspNet-Version頭

    這篇文章主要介紹了Asp.net移除Server,?X-Powered-By,?和X-AspNet-Version頭,移除X-AspNet-Version很簡(jiǎn)單,只需要在Web.config中增加相應(yīng)配置節(jié),感興趣的朋友一起看看吧
    2024-02-02
  • OpenCms 帶分頁(yè)的新聞列表

    OpenCms 帶分頁(yè)的新聞列表

    有一些網(wǎng)友在新聞列表分頁(yè)上還遇到一些問(wèn)題,正好這個(gè)blog上也忘記了此部分內(nèi)容,現(xiàn)在補(bǔ)充上,功能是實(shí)現(xiàn)了,可以自己再做些優(yōu)化,OpenCms7.0.5下測(cè)試通過(guò),內(nèi)容如下(編輯器的插入代碼功能有問(wèn)題,就直接把代碼粘上了
    2008-07-07
  • DataGridView自動(dòng)調(diào)整行高和行寬

    DataGridView自動(dòng)調(diào)整行高和行寬

    根據(jù)數(shù)據(jù)內(nèi)容自動(dòng)調(diào)整列寬,根據(jù)數(shù)據(jù)內(nèi)容自動(dòng)調(diào)整行高
    2009-04-04
  • .NET Core類庫(kù)System.Reflection.DispatchProxy實(shí)現(xiàn)簡(jiǎn)易Aop的方法

    .NET Core類庫(kù)System.Reflection.DispatchProxy實(shí)現(xiàn)簡(jiǎn)易Aop的方法

    這篇文章主要給大家介紹了關(guān)于.NET Core類庫(kù)System.Reflection.DispatchProxy實(shí)現(xiàn)簡(jiǎn)易Aop的相關(guān)資料,文中通過(guò)示例代碼結(jié)束的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評(píng)論