是否可以使用Apache POI XSSF设置活动范围?
问题描述:
我使用Apache POI XSSF来读取和写入Excel表格。是否可以使用Apache POI XSSF设置活动范围?
我知道我可以使用Sheet.setActiveCell(CellAddress address)
在工作表上设置活动单元格。
然而,我想它设置为包含在片材上多于一个的小区中的范围,由下面的图片所示:
当我保存与选定的多个小区的片材使用Excel在打开保存的文件时选择这些。 有没有办法用POI XSSF来做到这一点?
答
,您可以使用以下行来实现兰克作为活动单元格在Excel中:
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();
}
}
和使用IST像:
sheet.setActiveCell(new CellRangeAddress(new CellAddress("A1"), new CellAddress("B2")));
不是最干净和最好的方式,但工作没有警告。
谢谢你的回答,这个工程。但是,这种方法似乎已被弃用,但我找不到合适的替代品。 例如,这不起作用,因为setActiveCell只接受CellAddress作为输入: 'CellRangeAddress adr = CellRangeAddress.valueOf(“A1:B2”); wb.getSheetAt(wb.getActiveSheetIndex())。setActiveCell(adr);' – padrino
你使用的是哪个版本 – kism3t
我使用的是3.16,它似乎是最近的一个。 – padrino