Можно ли установить активный диапазон с помощью Apache POI XSSF?
Я использую Apache POI XSSF для чтения и записи листов Excel.
Я знаю, что могу установить активную ячейку на листе, используя Sheet.setActiveCell(CellAddress address)
,
Однако я бы хотел установить для него Range, содержащий более одной ячейки на листе, как показано на рисунке ниже:
Когда я сохраняю лист с несколькими ячейками, выбранными с помощью Excel, они выбираются при открытии сохраненного файла. Есть ли способ сделать это с POI XSSF?
1 ответ
Вы можете использовать следующую строку для достижения ранга в качестве активной ячейки в 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();
}
}
и использовать это как:
sheet.setActiveCell(new CellRangeAddress(new CellAddress("A1"), new CellAddress("B2")));
Не самый чистый и лучший способ, но работает без предупреждений.