OpenXML を使用してレポートを生成し、それを Excel にエクスポートしています。特定のセルを除いてExcelシートを保護したい。
誰かが以前にこれに取り組んだことがある場合は、親切に助けてください
ありがとう、アモリク
OpenXML を使用してレポートを生成し、それを Excel にエクスポートしています。特定のセルを除いてExcelシートを保護したい。
誰かが以前にこれに取り組んだことがある場合は、親切に助けてください
ありがとう、アモリク
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);
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 };
私はこれを試したことがありませんが、ProductivityToolkitで何をする必要があるかを見つけるのは簡単なはずです。これがあなたとこれを正しい方向に行おうとしている人を指し示してくれることを願っています。