我通过Apache POI XSSF
创建一个Excel文件,然后用密码锁定工作表,这样用户就无法更改前两行和前五列的值(我锁定工作表并允许编辑其他单元格)。一切正常,唯一的问题是用户无法调整列的大小,因此他既不能更改也不能调整列的大小以读取所有单元格的值。
即使工作表受到保护,是否可以允许列调整大小?
这是我的配置
workbook = new XSSFWorkbook();
sheet = workbook.createSheet("Sheet1");
sheet.protectSheet("passwordExcel");
unlockedNumericStyle = workbook.createCellStyle();
unlockedNumericStyle.setLocked(false);
// Format cell for date
dateStyle = workbook.createCellStyle();
CreationHelper createHelper = workbook.getCreationHelper();
dateStyle.setDataFormat(createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
sheet.autoSizeColumn(1);
我读到lockFormatCell()
,但我不明白它是否可以帮助我。感谢
答案 0 :(得分:2)
为了能够在工作表受到保护时调整列大小,您需要将XSSFSheet.lockFormatColumns设置为b = b.rename(columns={'FAM_FRUIT': 'famousfruit',
'FAM_ANI': 'famousanimal',
'cid': 'countryid'})
a.merge(b, how='outer')
# countryid famousanimal famousfruit waterlvl
# 0 22 monkey banana 23.0
# 1 36 elephant apple 43.0
# 2 21 monkey mango 41.0
# 3 64 horse orange 87.0
# 4 25 giraffe grapes NaN
# 5 27 dog pineapple NaN
# 6 98 cat avacado NaN
# 7 67 horse orange NaN
。
完整示例:
false