【问题标题】:How to make Excel columns read-only but re-sizable in EPPlus C# ?如何在 EPPlus C# 中使 Excel 列只读但可重新调整大小?
【发布时间】:2015-09-25 14:53:19
【问题描述】:

在我的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 
}

【问题讨论】:

    标签: c# .net excel epplus epplus-4


    【解决方案1】:

    ws.Protection 属性上有许多属性可以指定要保护的内容。一个是AllowFormatColumns,所以:

    ws.Protection.AllowFormatColumns = true;
    

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 2022-11-19
      • 2016-12-13
      • 2011-10-13
      • 1970-01-01
      • 2013-08-21
      • 2022-01-26
      • 2011-08-22
      • 1970-01-01
      相关资源
      最近更新 更多