How to UnProtect Sheet using OpenXML code? -
i have created 1 sheet, protect using openxml code.
but there requirement read excel file.
i getting values null because protected.
( haven't placed password yet in code protect sheet, there 1 sheet in excel file.)
i have got below code search unprotect worksheet.
worksheet.removeallchildren<sheetprotection>(); but, not working. still getting null values while reading protected sheet.
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 correct nomination file, example can download 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>(); can please me on this?
your code removing protection correct. before have open excel file in edit mode. second argument in spreadsheetdocument.open should set true.
also regardless of protection, should able read cell's value. see below code. in order test have create excel file , fill cells a1,b1 , c1 numbers.
using system.linq; using system.collections.generic; using documentformat.openxml.packaging; using documentformat.openxml.spreadsheet; class test { static void main() { string filepath = @"e:\test.xlsx"; using (spreadsheetdocument spreadsheetdocument = spreadsheetdocument.open(filepath, true)) { workbookpart workbookpart = spreadsheetdocument.workbookpart; ienumerable<sheet> sheets = spreadsheetdocument.workbookpart.workbook.getfirstchild<sheets>().elements<sheet>(); string relationshipid = sheets.first().id.value; worksheetpart worksheetpart = (worksheetpart)spreadsheetdocument.workbookpart.getpartbyid(relationshipid); worksheet worksheet = worksheetpart.worksheet; var databeforeprotection = worksheet.descendants<row>().first().descendants<cell>().first().cellvalue.innertext; worksheet.removeallchildren<sheetprotection>(); var dataafterprotection = worksheet.descendants<row>().first().descendants<cell>().first().cellvalue.innertext; worksheet.save(); } } }
Comments
Post a Comment