美文网首页
Apache POI 生成Sort和filter

Apache POI 生成Sort和filter

作者: 暗夜行者 | 来源:发表于2020-03-20 18:08 被阅读0次

设置filter
String lastIndexString = CellReference.convertNumToColString(lastStakeholderColNum);
//in this format , initial value is 1.Filer and sort region should be same.
String sqref = "A" + DATA_RECORD_START_ROW + ":" + lastIndexString + (validationRange+1);
impactDataSheet.setAutoFilter(CellRangeAddress.valueOf(sqref));
impactDataSheet.lockAutoFilter(false);

impactDataSheet.lockFormatColumns(false);
impactDataSheet.lockFormatRows(false);
impactDataSheet.lockFormatCells(false);
设置sort
CTProtectedRange protectedRange = impactDataSheet.getCTWorksheet().addNewProtectedRanges().addNewProtectedRange();
protectedRange.setName("enableSorting");
protectedRange.setSqref(Arrays.asList(sqref));
CTSheetProtection sheetProtection = impactDataSheet.getCTWorksheet().getSheetProtection();
sheetProtection.setSort(false);

impactDataSheet.protectSheet("");
设置protect之后,未被sort覆盖的范围都不可编辑。
filter与sort的范围域需要相同,否则会不可编辑,sort是一个改变值的操作,没有被sort覆盖到的区域将不会根据行内sort功能的使用而变化,且会将cell的属性变为可编辑。
pom 中引入CTProtectedRange类的包:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.3</version>
</dependency>

相关文章

网友评论

      本文标题:Apache POI 生成Sort和filter

      本文链接:https://www.haomeiwen.com/subject/fjasdhtx.html