簡體   English   中英

如何在ExcelPlus C#中將Excel列設置為只讀但可調整大小?

[英]How to make Excel columns read-only but re-sizable in EPPlus C# ?

在我的MVC項目中,用戶可以在UI中選擇一些產品,並以Excel(.xlsx)格式下載相關產品信息。

我們的業務需求是,除少數列/單元格外,文件應為只讀。 我正在使用EPPlus 4.0.4生成Excel,並且到目前為止效果很好。

我在這里面臨的問題是,在保護工作表的那一刻,用戶無法再調整列的大小(拖動標題以更改列寬)。 因此,某些列中的文本不完全可見。 為了解決這個問題,我將它們設置為AutoFit(以下代碼中的##)。 因此,文本現在可見。 但是,用戶仍然無法更改他們應該能夠更改的列寬。

所以我的問題是,我可以將單元格/列設置為只讀,但可以像普通Excel一樣重新設置它們的大小嗎?

我的代碼如下

//using OfficeOpenXml;
//using OfficeOpenXml.Style;
private void ProtectExcel(ExcelWorksheet ws, int columnCount)
{
    ws.Protection.AllowSort = true;
    ws.Protection.AllowSelectUnlockedCells = true;
    ws.Protection.AllowAutoFilter = true;

    for (int i = 1; i <= columnCount; i++)
    {
        ws.Column(i).Style.Locked = true; //making read-only
        ws.Column(i).AutoFit(); //## showing all text
    }

    ws.Protection.IsProtected = true; //making the sheet protected 
}

ws.Protection屬性上有許多屬性來指定要保護的內容。 一種是AllowFormatColumns ,所以:

ws.Protection.AllowFormatColumns = true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM