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

时间:2017-06-14 10:14:06

标签: java apache-poi xssf

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

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

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

Range selected in Excel Sheet

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

1 个答案:

答案 0 :(得分:3)

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

myDF.write.format("com.databricks.spark.csv").option("header", "true").save("output.csv")

希望它有所帮助。

从3.16开始,不推荐使用setActiveCell(String)方法,并且您不希望使用我建议创建自己的CellAddress的弃用方法:

    sheet.setActiveCell("A1:B2");

并使用ist like:

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();
    }
}

不是最干净,最好的方式,但没有警告就行。