是否可以使用 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 文件并在其上添加加密。希望免费版的加载和保存文件没有限制。
我正在开发一个 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 文件并在其上添加加密。希望免费版的加载和保存文件没有限制。