我创建了一张表,我可以使用 OpenXml 代码对其进行保护。
但是现在需要读取这个 excel 文件。
我将所有值都设为 NULL,因为它受到保护。
(我还没有在代码中设置任何密码来保护工作表,excel文件中只有一张工作表。)
我从搜索中获得了以下代码以取消保护工作表。
workSheet.RemoveAllChildren<SheetProtection>();
但是,这是行不通的。在阅读此受保护的工作表时,我仍然得到空值。
using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Open(FilePath, false))
{
WorkbookPart workbookPart = spreadSheetDocument.WorkbookPart;
IEnumerable<Sheet> sheets = spreadSheetDocument.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>();
//if ((sheets.Count() != 2) && (sheets.First().Name.Value != "StudentNomination") && (sheets.Last().Name.Value != "Sheet2"))
//{
// throw new Exception("Please Upload the correct Nomination file, for example you can download the Nomination Template file first.!!");
//}
string relationshipId = sheets.First().Id.Value;
WorksheetPart worksheetPart = (WorksheetPart)spreadSheetDocument.WorkbookPart.GetPartById(relationshipId);
Worksheet workSheet = worksheetPart.Worksheet;
workSheet.RemoveAllChildren<SheetProtection>();
SheetData sheetData = workSheet.GetFirstChild<SheetData>();
IEnumerable<Row> rows = sheetData.Descendants<Row>();
任何人都可以帮助我吗?