是否可以使用 Apache POI XSSF 设置活动范围?

Is it possible to set the active range with Apache POI XSSF?

我正在使用 Apache POI XSSF 来读写 Excel 表格。

我知道我可以使用 Sheet.setActiveCell(CellAddress address) 在作品sheet 上设置活动单元格。

但是,我想将它设置为包含 sheet 上多个单元格的范围,如下图所示:

当我保存一个 sheet 并使用 Excel 选择多个单元格时,这些单元格是在打开保存的文件时选择的。 有没有办法用 POI XSSF 做到这一点?

您可以使用以下行在 excel 中将 ranke 作为活动单元格:

    sheet.setActiveCell("A1:B2");

希望对您有所帮助。

从 3.16 开始,setActiveCell(String) 方法已弃用,您不想使用已弃用的方法我建议创建您自己的 CellAddress:

public class CellRangeAddress extends CellAddress {

    private CellAddress start;
    private CellAddress end;

    public CellRangeAddress(final CellAddress start, final CellAddress end) {
        super(start);
        this.start = start;
        this.end = end;
    }


    @Override
    public String formatAsString() {
        if (end != null) {
            return start.formatAsString() + ":" + end.formatAsString();
        }
        return super.formatAsString();
    }
}

并像这样使用:

sheet.setActiveCell(new CellRangeAddress(new CellAddress("A1"), new CellAddress("B2")));

这不是最干净和最好的方法,但可以在没有警告的情况下工作。