[Стартовый режим, режим: саркастический]
Как часто не хватает понимания того, как работает Excel
. Многие программисты, кажется, думают, что могут программировать Excel
функциональные возможности, не зная Excel
. Они могут подумать: «Excel
зачем мне это? Я программист, а не офисный работник». Но для программирования Excel
функциональных возможностей сначала нужно знать Excel
. Там нет пути вокруг.
[/ rant end]
Если вы открываете файл Excel
, показанный на вашей картинке в графическом интерфейсе Excel
, и нажимаете на первую - над J
, тогда J
часть группы ? Нет. И это часть второй группы? Нет это тоже нет. Это связано с тем, что между отдельными группами столбцов должен быть хотя бы один столбец, если они отображаются так, как показано на рисунке.
Итак, как показано на вашей картинке, вы сгруппировали E:I
, K:O
и Q:U
.
Источник:
Код:
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
class ExcelGroupColumns {
public static void main(String[] args) throws Exception{
FileInputStream in = new FileInputStream("Test.xlsx");
Workbook workbook = WorkbookFactory.create(in);
Sheet sheet = workbook.getSheetAt(0);
int firstColumn = 4;
int countGoupedColumns = 5;
int countGroups = 3;
for (int i = 0; i < countGroups; i++) {
sheet.groupColumn(firstColumn, firstColumn + countGoupedColumns - 1);
firstColumn += countGoupedColumns + 1;
}
FileOutputStream out = new FileOutputStream("Test_1.xlsx");
workbook.write(out);
out.close();
workbook.close();
}
}
Результат: