【问题标题】:NPOI protect sheet XSSF excel workbookNPOI 保护表 XSSF excel 工作簿
【发布时间】:2017-12-05 00:09:08
【问题描述】:

我必须保护以这种方式生成的 xssf Excel 中的一行(例如 rowNum 0)(使用库 NPOI 版本 2.2.1.0)

ISheet sheet_for_dropdown_list = Workbook.CreateSheet("DropDownList");

其实protect命令只是用来通过密码保护整个工作表

sheet_for_dropdown_list.ProtectSheet("admin");

然后我尝试解锁设置属性的row1 isLocked false 风格

ICellStyle extCellStyle = Workbook.CreateCellStyle();

unprotectCellStyle.IsLocked = false

IRow1 row1= sheet_for_dropdown_list.GetRow(1);

并取消保护所有单元格

foreach (ICell cell in row1)
        cell.CellStyle = unprotectCellStyle;

这个操作可以对所有行> 0进行

此解决方案部分有效,因为可以修改单元格内容但无法修改列的高度。因此,在空闲单元格中无法插入高度大于实际高度列的内容。

【问题讨论】:

    标签: c# excel npoi


    【解决方案1】:

    我认为您正在寻找设置标题行的高度。您可以指定高度或环绕文本或两者兼而有之。

    要指定高度,请参见this 链接。要换行文本,请使用以下语法

    XSSFCellStyle headerStyle = (XSSFCellStyle)workbook.CreateCellStyle();
    headerStyle.WrapText = true;
    

    【讨论】:

    • 好的。您的解决方案给了我一个重要的提示。我的问题是,使用强制转换为 ISheet 我只能访问接口 ISheet 接口导出的功能,相反,如果强制转换是(XSSFSheet),我可以加入所有功能,如果工作表是,我也可以设置行的高度保护。所以这对我有用 (XSSFSheet) mySheet = (XSSFSheet)WorkbooK.CreateSheet("nameSheet");
    • mySheet.ProtectSheet("admin"); mySheet.unlockFormatColumns();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多