IRONSOFTWAREHOME

如何在C#中為工作簿設置密碼

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronXL使開發者能夠透過一個方法呼叫在C#中密碼保護Excel工作簿——使用Encrypt方法與您的理想密碼並儲存工作簿以立即應用保護。

快速入門:使用IronXL加密工作簿密碼

只需一步,IronXL就能讓開發者加密Excel工作簿——不需要Interop、一點也不麻煩。 使用Encrypt方法與您的密碼並儲存文件以立即保護您的工作簿。

  1. 1Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. 2複製並運行這段程式碼片段。

    var wb = WorkBook.Load("input.xlsx"); wb.Encrypt("MyStrongPass"); wb.SaveAs("input.xlsx");
    C#
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronXL,透過免費試用
    arrow pointer

如何存取已密碼保護的工作簿?

提供密碼作為Load方法的第二個參數即可打開受保護的電子表格。 例如:WorkBook.Load("sample.xlsx", "IronSoftware")。 此功能在處理由同事或自動化流程保護的現有Excel文件時尤為重要。

請注意: 如果沒有正確的密碼是無法打開受保護的電子表格的

這是一個完整的範例,展示如何存取已密碼保護的工作簿:

using IronXL;

// Attempt to open a password-protected workbook
try 
{
    WorkBook protectedWorkBook = WorkBook.Load("encrypted_data.xlsx", "MySecretPass123!");
    
    // Access the first worksheet
    WorkSheet sheet = protectedWorkBook.WorkSheets[0];
    
    // Read data from protected file
    var cellValue = sheet["A1"].Value;
    Console.WriteLine($"Successfully accessed protected workbook. A1 contains: {cellValue}");
}
catch (Exception ex)
{
    Console.WriteLine($"Failed to open workbook: {ex.Message}");
}

如果我使用錯誤的密碼會發生什麼事?

當提供錯誤的密碼時,IronXL會拋出異常,而不是返回null或空的工作簿。 這種行為通過阻止未授權的存取嘗試來確保安全。請始終將您的密碼保護工作簿操作包裝在try-catch塊中,以優雅地處理身份驗證失敗。 如果您正在構建一個處理多個Excel文件的應用程式,考慮實施一個重試機制,讓使用者提示輸入密碼。

我可以在打開之前檢查工作簿是否已受密碼保護嗎?

不幸的是,Excel的文件格式不允許在嘗試打開文件前檢查密碼保護狀態。建議的方法是先嘗試在無密碼情況下載入,然後捕捉異常,如果需要則重新輸入密碼。 當管理多個帶有混合保護層次的工作表時,這個模式效果很好。

如何為工作簿設置密碼?

要對電子表格進行密碼保護,請使用下方程式碼中的Encrypt方法:

WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open protected spreadsheet file
WorkBook protectedWorkBook = WorkBook.Load("sample.xlsx", "IronSoftware");

// Set protection for spreadsheet file
workBook.Encrypt("IronSoftware");

workBook.Save();

對於更高級的場景,您可以將工作簿加密與工作表層級保護結合起來:

using IronXL;
using System;

// Create a new workbook with sensitive financial data
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.CreateWorkSheet("FinancialData");

// Add sensitive data
sheet["A1"].Value = "Confidential Financial Report";
sheet["A3"].Value = "Revenue";
sheet["B3"].Value = 1250000;
sheet["A4"].Value = "Expenses";
sheet["B4"].Value = 750000;

// Apply formatting before encryption
sheet["B3:B4"].FormatString = "$#,##0.00";

// Encrypt the workbook with a strong password
workBook.Encrypt("F!n@nc3_S3cur3_2024");

// Save the encrypted workbook
workBook.SaveAs("financial_report_encrypted.xlsx");

Console.WriteLine("Workbook encrypted successfully!");
C#

為什麼密碼只有在儲存後才生效?

Excel中的加密過程會修改文件的內部結構,這需要寫入磁碟。 在您呼叫SaveAs()之前,工作簿會在未應用加密情況下保留在記憶體中。 這種設計允許您在提交加密版本之前進行多次修改。 在處理工作簿中的元資料時,請記得在應用加密和儲存之前設定好所有屬性。

我應該使用什麼樣的密碼強度?

對於業務應用程式,請遵循以下密碼指南:

  • 最小12位元字元長度
  • 混合大小寫字母
  • 包含數字和特殊字元
  • 避免字典詞或可預測的模式
  • 考慮使用類似"MyExcel@Report#2024!"的通行短語

在開發將敏感資料導出到Excel的應用程式時,實施能夠程式化地執行這些要求的密碼策略。

我可以只對特定的工作表進行密碼保護嗎?

可以! IronXL支持工作簿層級和工作表層級的保護。 儘管工作簿加密可以防止未經授權的文件存取,工作表保護則可以防止對特定工作表的修改。 您可以結合兩種方法:

// Load workbook
WorkBook workBook = WorkBook.Load("multi_sheet_report.xlsx");

// Protect specific worksheets
workBook.WorkSheets["Summary"].ProtectSheet("SheetPass123");
workBook.WorkSheets["Details"].ProtectSheet("DetailPass456");

// Then encrypt the entire workbook
workBook.Encrypt("MasterPassword789!");

// Save with both protections
workBook.Save();
顯示 WorkBook.Load() 與 WorkBook.Encrypt() 方法的 C# 程式碼,並以檔案總管顯示 Excel 檔案

如何移除工作簿上的密碼?

要從電子表格中移除密碼,只需將 Password 欄位設為 null,如下圖中的程式碼所示:

請注意: 只能在存取工作簿之後執行此操作。 因此,有必要知道原來的密碼。
// Remove protection for opened workbook. Original password is required.
workBook.Password = null;

這是一個全面的範例,展示如何完整地去除密碼保護的工作流程:

using IronXL;

// First, open the protected workbook with the correct password
WorkBook protectedWorkBook = WorkBook.Load("encrypted_report.xlsx", "CurrentPassword123");

// Perform any necessary operations
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["A1"].Value = "Updated after removing protection";

// Remove the password protection
protectedWorkBook.Password = null;

// Save the workbook without password protection
protectedWorkBook.SaveAs("unprotected_report.xlsx");

Console.WriteLine("Password protection removed successfully!");

我何時應該移除密碼保護?

移除密碼的常見情境包括:

  • 歸檔:將文件移送到安全儲存區,此時文件層級加密是多餘的
  • 系統整合:自動化過程需要匯入Excel資料,不需要手動介入
  • 協作:將文件分享給不需要密碼存取的團隊成員
  • 遷移:將受保護的文件轉換為系統不支援Excel加密的使用

在從任何工作簿中移除密碼保護之前,請始終確保您擁有適當的授權。

IronXL能夠通過一行C#程式碼保護和解鎖Excel workBooksworkSheets。 欲了解更多高級Excel安全功能,請探索我們關於工作簿元資料管理和安全資料處理實踐的指南。

常見問題

如何在C#中保護Excel工作簿的密碼?

有了IronXL,您可以使用Encrypt方法來保護Excel工作簿的密碼。只需載入您的工作簿,調用wb.Encrypt("YourPassword"),然後保存該文件。這個單一方法調用可以立即保護您的Excel文件,而不需要Microsoft Office Interop。

我可以在不知道密碼的情況下打開受密碼保護的Excel文件嗎?

不可以,IronXL要求輸入正確的密碼才能打開保護的Excel文件。當載入受密碼保護的工作簿時,您必須提供密碼作為第二個參數:WorkBook.Load("file.xlsx", "password").若沒有正確的密碼,則無法存取該文件。

當我使用錯誤的密碼嘗試打開受保護的工作簿時會發生什麼?

當提供了錯誤的密碼時,IronXL會拋出異常,而不是返回null或空白工作簿。這一安全特性可以防止未經授權的存取嘗試。始終將受密碼保護的工作簿操作包裹在try-catch塊中,以優雅地處理身份驗證失敗。

在打開Excel文件之前,如何檢查它是否受密碼保護?

Excel的文件格式不允許在嘗試打開文件之前檢查密碼保護狀態。使用IronXL,建議的方法是先嘗試不使用密碼載入文件,然後如果需要,捕捉異常並重新使用密碼載入。

我可以移除Excel工作簿的密碼保護嗎?

可以,IronXL允許您移除工作簿的密碼保護。首先,使用正確的密碼載入受保護的工作簿(通過WorkBook.Load("file.xlsx", "password")),然後不加密保存它以建立無保護的版本。

密碼保護適用於所有Excel文件格式嗎?

IronXL支持現代Excel格式(包括.xlsx和.xlsm文件)的密碼保護。該加密功能在不同的Excel版本中無縫地運作,不需要在系統上安裝Microsoft Office。

Is it possible to password-protect specific worksheets only?

Yes, IronXL allows you to protect specific worksheets by using the `ProtectSheet` method. This feature is useful for restricting access to certain data within a workbook while maintaining general file accessibility.

How can I remove password protection from an Excel workbook?

To remove password protection, open the workbook with the correct password, set the `Password` property to null, and save the workbook. This removes any encryption previously applied.

When is it appropriate to remove password protection from a workbook?

Removing password protection is appropriate when archiving files, integrating with systems that don't support encryption, sharing with team members who don't need secure access, or migrating to non-Excel formats.

Does IronXL support workbook-level and worksheet-level protection?

Yes, IronXL supports both workbook-level encryption and worksheet-level protection, allowing developers to implement comprehensive security measures tailored to their needs.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備好開始了嗎?

Nuget Downloads 2,237,574版本:2026.9剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的免費30天試用金鑰
無需信用卡或帳戶建立
PDF的C# NuGet程式庫
NuGet安裝

版本: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. 在方案資源管理器中,右鍵單擊參考,管理NuGet包
  2. 選擇瀏覽並搜尋“IronXL”
  3. 選擇包並安裝
C# PDF DLL
下載DLL

版本: 2026.9

  1. 下載並解壓IronXL到您的方案目錄中的比如~/Libs位置
  2. 在Visual Studio方案資源管理器中,右鍵單擊參考。選擇瀏覽,“IronXL.dll”

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立