【发布时间】:2018-04-02 07:15:00
【问题描述】:
我想阅读一个包含一个合并列的 Excel 工作表,我需要处理该列以确定分组的行。这样我就可以将该组视为一个集合。同样,每个合并的行都被视为 set1、set2、set3 等。然后,我将分别处理每个集合及其行。
更新: 应@fireandfuel 的要求,我附上了我已经到达的方法。
CTMergeCells mergeCells = workSheet.getMergeCells();
SheetData sheetData = workSheet.getSheetData();
List<ArrayList<Row>> rowGroups = new ArrayList<ArrayList<Row>>();
List<CTMergeCell> cTMergeCells = mergeCells.getMergeCell();
for(CTMergeCell mcells : cTMergeCells){
String range = mcells.getRef();
Integer rowStart = Integer.parseInt(range.substring(1, 2));
Integer rowEnd = Integer.parseInt(range.substring(4, 5));
ArrayList<Row> rowss = (ArrayList<Row>) sheetData.getRow().stream().filter(row -> {
return row.getR() >= rowStart.longValue() && row.getR() <= rowEnd.longValue();
}).collect(Collectors.toList());
rowGroups.add((ArrayList<Row>) rowss);
}
【问题讨论】:
-
告诉我们您的尝试
-
@sidgate 我只尝试过
formatter.formatCellValue(row.getC().get(3))。我不知道要调用什么来获取行范围,就像我们在Apache poi 中所做的那样。我浏览了 docx4j 文档,但没有运气。 -
您可能对codereview.stackexchange.com 感兴趣以查看您的代码。我发现您的方法存在一些问题,但它不在主题范围内。