开发者

How can I protect an excel sheet, except for a particular cell using Open XML 2.0?

开发者 https://www.devze.com 2023-01-06 14:30 出处:网络
I am generating a report using OpenXML and exporting it to excel. I 开发者_JAVA技巧want to protect the excel sheet except for a particular cell.

I am generating a report using OpenXML and exporting it to excel. I 开发者_JAVA技巧want to protect the excel sheet except for a particular cell.

If anyone has worked on this before, kindly help

Thanks, Amolik


            PageMargins pageM = worksheetPart.Worksheet.GetFirstChild<PageMargins>();
            SheetProtection sheetProtection = new SheetProtection();
            sheetProtection.Password = "CC";
            sheetProtection.Sheet = true;
            sheetProtection.Objects = true;
            sheetProtection.Scenarios = true;
            ProtectedRanges pRanges = new ProtectedRanges();
            ProtectedRange pRange = new ProtectedRange();
            ListValue<StringValue> lValue = new ListValue<StringValue>();
            lValue.InnerText = "A1:E1"; //set cell which you want to make it editable
            pRange.SequenceOfReferences = lValue;
            pRange.Name = "not allow editing";
            pRanges.Append(pRange);
            worksheetPart.Worksheet.InsertBefore(sheetProtection, pageM);
            worksheetPart.Worksheet.InsertBefore(pRanges, pageM);

ref : http://social.msdn.microsoft.com/Forums/en-US/a6f7502d-3867-4d5b-83a9-b4e0e211068f/how-to-lock-specific-columns-in-xml-workbook-while-exporting-dataset-to-excel?forum=oxmlsdk


Have you tried using the OpenXML Productivity Toolkit?

from what I can see you have to add a

new CellFormat

with attribute

ApplyProtection = true

to

CellFormats

append

new Protection

with attribute

Locked = false

to the the CellFormat you created.

CellFormat is a element of CellFormats which is a element of Stylesheet

then to the Worksheet you add a

new SheetProtection(){ Password = "CC1A", Sheet = true, Objects = true, Scenarios = true };

I havent tried this, but it should be easy enought to find out what you need to do with the Productivity Toolkit. I hope this points you and anyone trying to do this in the right direction.

0

精彩评论

暂无评论...
验证码 换一张
取 消