OpenXml コードを使用して保護できるシートを 1 つ作成しました。
しかし今、このエクセルファイルを読む必要があります。
保護されているため、すべての値を NULL として取得しています。
(シートを保護するためにコードにパスワードをまだ配置していません。Excelファイルにはシートが1つしかありません。)
ワークシートの保護を解除するために、検索から以下のコードを取得しました。
workSheet.RemoveAllChildren<SheetProtection>();
しかし、これは機能していません。この保護されたシートを読んでいる間、私はまだ null 値を取得しています。
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>();
誰でもこれについて私を助けてもらえますか?