簡體   English   中英

是否可以使用 OpenXML SDK 創建加密的 Excel 文件

[英]Is it possible to create an encrypted Excel file with the OpenXML SDK

我正在開發一個 C# 項目,該項目創建、加密和發送 Excel 文件作為電子郵件附件。 我不是想保護excel,而是加密它並設置打開它的密碼。 甚至可以使用 OpenXML SDK 嗎? 我試過了,但我不認為這是為了加密:

string hexConvertedPassword = HexPasswordConversion("Azerty123");
WorkbookProtection WorkbookProt = new WorkbookProtection()
{
    WorkbookPassword = hexConvertedPassword,
    RevisionsPassword = hexConvertedPassword,
    LockRevision = true,
    LockStructure = true,
    LockWindows = true,
};
Workbook workbook = new Workbook();
workbook.Append(WorkbookProt);

我已經在文檔中搜索過,但可能錯過了。

我知道有些庫可以做到這一點,例如 devexpress、EasyXLS、Spire.Xls 等,但這些都非常昂貴。

您可以嘗試通過逐個單元格讀取來加密 DOCUMENT 的內容並生成一個新的.xlsx文件。

    WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
    WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
    SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
    string text;
    foreach (Row r in sheetData.Elements<Row>())
    {
        foreach (Cell c in r.Elements<Cell>())
        {
            // send to ecryption function.

            text = c.CellValue.Text;
            Console.Write(text + " ");
            
            
        }
    }

有關更多詳細信息,請訪問: https : //docs.microsoft.com/en-us/office/open-xml/how-to-parse-and-read-a-large-spreadsheet

最后,我使用 FreeSpire.XLS 加載我現有的 Excel 文件並在其上添加加密。 希望免費版本對加載和保存文件沒有限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM