Excel管理控件Aspose.Cells開發(fā)者指南(三十八):保護工作表
Aspose.Cells for .NET是Excel電子表格編程API,可加快電子表格管理和處理任務(wù),支持構(gòu)建具有生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印電子表格功能的跨平臺應(yīng)用程序。
在接下來的系列教程中,將為開發(fā)者帶來Aspose.Cells for .NET的一系列使用教程,例如關(guān)于加載保存轉(zhuǎn)換、字體、渲染、繪圖、智能標記等等。本文重點介紹如何設(shè)置打印選項。
>>Aspose.Cells for .NET已經(jīng)更新至v20.9,支持獲取/設(shè)置切片器形狀屬性,新增客戶端api用于添加/刪除GridWeb的注釋,凍結(jié)和拆分工作表的功能增強,點擊下載體驗
第九章:關(guān)于保護功能
▲第一節(jié):保護工作表
Aspose.Cells提供了一個表示Microsoft Excel文件的類--Workbook,該類包含一個工作表集合,允許訪問Excel文件中的每個工作表。Workbook類包含一個Worksheets集合,允許訪問Excel文件中的每個工作表。一個工作表由Worksheet類來表示。
Worksheet類提供了Protect方法,用于對工作表進行保護。Protect方法接受以下參數(shù)。
- 保護類型,適用于工作表的保護類型。保護類型是在ProtectionType 枚舉的幫助下應(yīng)用的。
- 新密碼,用于保護工作表的新密碼。
- 舊密碼,舊密碼(如果工作表已受密碼保護)。如果工作表尚未受到保護,則只需傳遞null。
該ProtectionType 枚舉包含以下預(yù)先定義的保護類型:
保護類型 | 描述 |
---|---|
All | 用戶無法修改此工作表上的任何內(nèi)容 |
內(nèi)容 | 用戶無法在此工作表中輸入數(shù)據(jù) |
對象 | 用戶無法修改圖形對象 |
情境 | 用戶無法修改已保存的方案 |
結(jié)構(gòu)體 | 用戶無法修改結(jié)構(gòu) |
視窗 | 保護已應(yīng)用于Windows |
None | 未應(yīng)用保護 |
下面的示例顯示了如何使用密碼保護工作表。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // Creating a file stream containing the Excel file to be opened FileStream fstream = new FileStream(dataDir + "book1.xls", FileMode.Open); // Instantiating a Workbook object // Opening the Excel file through the file stream Workbook excel = new Workbook(fstream); // Accessing the first worksheet in the Excel file Worksheet worksheet = excel.Worksheets[0]; // Protecting the worksheet with a password worksheet.Protect(ProtectionType.All, "aspose", null); // Saving the modified Excel file in default format excel.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003); // Closing the file stream to free all resources fstream.Close();
在上面的代碼用于保護工作表之后,您可以通過打開工作表來檢查保護。打開文件并嘗試向工作表中添加一些數(shù)據(jù)后,您將看到以下對話框:
要在工作表上工作,請選擇“ 保護”,然后從“ 工具”菜單項中選擇“取消保護工作表”來取消保護工作表。選擇“取消保護工作表”菜單項后,將打開一個對話框,提示您輸入密碼,以便您可以在工作表上進行操作,如下所示:
使用Aspose單元格保護工作表中的一些單元格
在此方法中,我們僅使用Aspose.Cells API來完成任務(wù)。
示例:以下示例展示了如何保護工作表中的一些單元格。它首先解鎖工作表中的所有單元格,然后鎖定其中的3個單元格(A1,B1,C1)。最后,它保護了工作表。該樣式對象包含了一個布爾屬性,IsLocked。您可以將IsLocked 屬性設(shè)置為true或false,然后應(yīng)用Column / Row.ApplyStyle()方法來鎖定或解鎖具有所需屬性的行/列。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // Create directory if it is not already present. bool IsExists = System.IO.Directory.Exists(dataDir); if (!IsExists) System.IO.Directory.CreateDirectory(dataDir); // Create a new workbook. Workbook wb = new Workbook(); // Create a worksheet object and obtain the first sheet. Worksheet sheet = wb.Worksheets[0]; // Define the style object. Style style; // Define the styleflag object StyleFlag styleflag; // Loop through all the columns in the worksheet and unlock them. for (int i = 0; i <= 255; i++) { style = sheet.Cells.Columns[(byte)i].Style; style.IsLocked = false; styleflag = new StyleFlag(); styleflag.Locked = true; sheet.Cells.Columns[(byte)i].ApplyStyle(style, styleflag); } // Lock the three cells...i.e. A1, B1, C1. style = sheet.Cells["A1"].GetStyle(); style.IsLocked = true; sheet.Cells["A1"].SetStyle(style); style = sheet.Cells["B1"].GetStyle(); style.IsLocked = true; sheet.Cells["B1"].SetStyle(style); style = sheet.Cells["C1"].GetStyle(); style.IsLocked = true; sheet.Cells["C1"].SetStyle(style); // Finally, Protect the sheet now. sheet.Protect(ProtectionType.All); // Save the excel file. wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);
還想要更多嗎?您可以點擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。