Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.4k views
in Technique[技术] by (71.8m points)

c# - Protected worksheet with Epplus - need to allow filtering and sorting. Sorting not permitted

The purpose of the following method is to style and protect a worksheet after data has been written to it with Epplus. The styling is correct, and the appropriate cells (in a particular row) are protected. It is designed to allow sorting and filtering despite the fact that the "header" row cells are protected.

In the generated spreadsheet, Excel allows filtering to be performed. However, sorting is met with an error message. How to solve this?

public void format_spreadsheet(ExcelWorksheet worksheet)
{
    ExcelRange range;

    // styling header cells...

    // protect headers and allow sorting and filtering, amongst other things
    worksheet.Protection.IsProtected = true;
    worksheet.Protection.AllowAutoFilter = true;
    worksheet.Protection.AllowDeleteColumns = false;
    worksheet.Protection.AllowDeleteRows = true;
    worksheet.Protection.AllowEditObject = true;
    worksheet.Protection.AllowEditScenarios = true;
    worksheet.Protection.AllowFormatCells = true;
    worksheet.Protection.AllowFormatColumns = true;
    worksheet.Protection.AllowFormatRows = true;
    worksheet.Protection.AllowInsertColumns = false;
    worksheet.Protection.AllowInsertHyperlinks = false;
    worksheet.Protection.AllowInsertRows = true;
    worksheet.Protection.AllowPivotTables = false;
    worksheet.Protection.AllowSelectLockedCells = true;
    worksheet.Protection.AllowSelectUnlockedCells = true;
    worksheet.Protection.AllowSort = true;

    // set a random password so it's impossible for anybody to edit the protected cells...

    // autofit columns
    range = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, lastHeaderCol];
    range.AutoFitColumns();
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...