Как защитить лист Excel, кроме отдельной ячейки, использующей Open XML 2.0? - PullRequest
2 голосов
/ 08 июля 2010

Я создаю отчет с использованием OpenXML и экспортирую его в Excel.Я хочу защитить лист Excel за исключением отдельной ячейки.

Если кто-то работал над этим раньше, пожалуйста, помогите

Спасибо, Амолик

Ответы [ 2 ]

1 голос
/ 08 октября 2014
            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

0 голосов
/ 07 апреля 2011

Вы пытались использовать OpenXML Productivity Toolkit?

. Из того, что я вижу, вы должны добавить

new CellFormat

с атрибутом

ApplyProtection = true

к

CellFormats

добавьте

new Protection

с атрибутом

Locked = false

к созданному вами CellFormat.

CellFormat является элементомCellFormats, который является элементом Stylesheet

, а затем к Worksheet вы добавляете

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

Я не пробовал это, но должно быть легко выяснить,что вам нужно сделать с помощью набора инструментов для повышения производительности.Я надеюсь, что это указывает вам и всем, кто пытается сделать это в правильном направлении.

...