0

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>();

誰でもこれについて私を助けてもらえますか?

4

1 に答える 1