【解決方法】openxmlを使用してExcelセルにパスワード保護を適用する

[ad_1]

私はアプリケーションにExcelファイルをダウンロードしています OpenXML機能。 ここでは、シートのすべての列ではなく、一部の列にロックを適用する必要があります。

次のコードでシート全体をロックできます。

//************Sheet Protection******************
Protection objProtection = new Protection();
objProtection.Locked = true;
cellFormat.ApplyProtection = true;
cellFormat.Append(objProtection);
SheetProtection objStyleSheetP = new SheetProtection();
objStyleSheetP.Password = "123";
objStyleSheetP.Sheet = true;
objStyleSheetP.Objects = true;
objStyleSheetP.Scenarios = true;
styleSheet.CellFormats.Append(cellFormat);
workSheet.InsertAfter(objStyleSheetP, workSheet.Elements<SheetData>().First());
//***********Till Here********************

グーグルでいろいろ検索してみましたが、すべて無駄でした。 誰かが正確なコードまたはそれを解決する方法のアイデアを見つけるのを手伝ってくれませんか。

ありがとうございます。

解決策 1

こんにちは、解決策を見つけました:

シートに保護を加える

SheetProtection objStyleSheetP = new SheetProtection();
objStyleSheetP.Password = “123”;
objStyleSheetP.Sheet = true;
objStyleSheetP.Objects = true;
objStyleSheetP.Scenarios = true;

worksheetPart.Worksheet.InsertAfter(objStyleSheetP, worksheetPart.Worksheet.Elements().First());

本文を保護せずにヘッダーを保護したい場合は、セル形式を追加します

プロテクション objProtection = new Protection();
objProtection.Locked = true;

プロテクション objProtection2 = new Protection();
objProtection2.Locked = false;

CellFormats cellFormats = new CellFormats(
new CellFormat {ApplyProtection = true, Protection= objProtection2 }, // body
new CellFormat {ApplyProtection = true, Protection = objProtection } // ヘッダー
); ;

styleSheet = 新しいスタイルシート(cellFormats);

セルにスタイルインデックスを設定します

cell.StyleIndex = 1; // ヘッダー

cell.StyleIndex = 0; //体

ご協力いただきありがとうございます

[ad_2]

コメント

タイトルとURLをコピーしました