Если вы являетесь разработчиком приложений Java, работающим с Excel из ваших приложений Java, вам было бы заинтересовано в предоставлении функциональности манипулирования данными Excel в вашем приложении. Excel позволяет форматировать стиль ячейки, установить тип ячейки для разных типов данных, заполнять ячейку разными цветами и так далее. Apache Poi служит вашим мостом между Java и Excel, предлагая инструменты для манипулирования Excel xlsx файлы программно. В этой серии блогов мы представим манипуляции по искусству клеток Excel с использованием Apache Poi в Java. Давайте погрузимся и обнаружим синергию кода и электронных таблиц!

СОДЕРЖАНИЕ

На протяжении всего блога мы проведем образцы кода и объяснить их следующим образом:

  1. Создание ячеек в файле Excel
  2. Создайте ячейки даты в Excel
  3. Работа с различными типами клеток
  4. Установка внешнего вида ячейки

Работа с ячейками в файле Excel в java {.wp-block heading}

Создание ячеек в файле Excel {.wp-block heading}

//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

Приведенный выше фрагмент кода Java демонстрирует использование API Apache POI для работы с ячейками в рабочей книге Excel. Код создает новую рабочую книгу Excel (\ **xssfworkbook** \), инициализирует лист в рабочей книге, а затем заполняет ячейки различными типами данных. Во -первых, код создает новый лист под названием « новый лист ». Затем он генерирует строку в индексе 0 на листе и продолжает заполнять ячейки в этой строке. Первой ячейке (индекс 0) присваивается целочисленное значение 1 с использованием метода \ **setCellValue** \. Напротив, вторая ячейка (индекс 1) устанавливается на десятичное значение 1,2 непосредственно в методе \ **CreateCell** \. Третья ячейка (индекс 2) содержит строковое значение «Это строка», созданное с использованием метода \ **createrichtextString** \ метод из экземпляра \ **xssfreationHelper** \. Наконец, четвертая ячейка (индекс 3) заполнена логическим значением «истина». После того, как значения ячейки установлены, код записывает полученную книгу в файл Excel с именем «Workbook.xlsx» с использованием \ **FileOutputStream** \.

Создание ячейки типа даты {.wp-block neading}

XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it.  The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time).  It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

Этот фрагмент кода Java демонстрирует использование API API API Apache для работы с ячейками типа даты в рабочей книге Excel. Код начинается с создания новой рабочей книги Excel (\ **xssfworkbook** \). Первая ячейка (индекс 0) предназначена для сохранения значения даты. A \ **Дата** \ объект, представляющий текущую дату и время, устанавливается в качестве значения ячейки с использованием метода \ **setCellValue** \. Эта ячейка явно не определяется как дата. Для второй ячейки (индекс 1) новый стиль ячейки (\ cellstyle \) создается с использованием метода \ createcellstyle \ рабочей книги. Этот стиль затем настроен, чтобы иметь определенный формат даты и времени с использованием метода \ setDataFormat \. \ CenestaTaformat (). GetFormat (« M/D/Yy H: MM ») \ Создает пользовательский формат даты с шаблоном формата «M/D/Yy H: MM». Второй ячейке присваивается текущая дата и время времени, а к ней применяется вновь созданный стиль ячейки с использованием метода \ setcellstyle \. Третья ячейка (индекс 2) демонстрирует альтернативный метод для заполнения ячеек типа дат с использованием \ java.util.calendar \. Подобно второй ячейке, индивидуальный стиль ячейки также применяется к этой ячейке.

Работа с различными типами ячеек {.wp-block heading}

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR);		// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

В этом образце кода различные стили ячейки применяются к ячеек в файле Excel, используя API Apache POI, как объясняется на следующих шагах.

  1. Строка создается в индексе 2 на листе с использованием \ **Createrow** (2) \. Затем ячейки заполняются в этом ряду следующими данными.
  2. Первой ячейке (индекс 0) присваивается десятичное значение 1.1 с использованием метода \ **SetCellValue** \.
  3. Во второй ячейке (индекс 1) текущая дата и время вставляются с использованием объекта \ date \ через метод \ **setCellValue** \.
  4. Третья ячейка (индекс 2) содержит дату и время из экземпляра \ \, установленного с использованием метода \ **setCellValue** \.
  5. Четвертая ячейка (индекс 3) содержит текст «строка».
  6. Пятая ячейка (индекс 4) обозначена для логического значения «истина».
  7. Двигаясь вперед, конкретный тип ячейки присваивается шестой ячейке (индекс 5), вызывая метод \ **setCellType** \. Эта ячейка настроена как ячейка ошибок с использованием \ **celltype.error** \ enumeration, что указывает на то, что она будет отображать значение ошибки. Наконец, модифицированная рабочая книга записывается в файл с именем «Workbook.xlsx» с использованием \ **FileOutputStream** \. Таким образом, этот пример кода демонстрирует, как установить рабочую книгу Excel, применять различные стили ячеек для размещения различных типов данных и в конечном итоге сохранить модифицированную рабочую книгу в файл. Эта практическая иллюстрация демонстрирует возможности библиотеки Apache POI для работы с файлами Excel в Java.

Установка внешнего вида ячейки {.wp-block heading}

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}
wb.close();

Этот фрагмент кода демонстрирует, как манипулировать появлением ячеек в файле Excel, используя библиотеку Apache POI в Java. Это достигается с использованием следующих шагов.

  1. Строка создается в индексе 1 на листе с использованием \ createrow (1) \. Следующие изменения вносятся в ячейки в этом ряду.
  2. Для первой ячейки (индекс 1) создается индивидуальный стиль ячейки с использованием \ wb.createcellstyle () \. Этот стиль настроен с цветом аква -фонов с использованием \ setFillbackgroundcolor \ и \ IndexedColors.aqua.getIndex () \. Паттерн для фона устанавливается на «большие пятна» с использованием \ setFillPattern (fillPatterntype.big_spots) \. Ячейка создается в этой строке в индексе 1 и заполнена значением «x». Ранее созданный стиль применяется к этой ячейке с использованием \ setcellstyle \.
  3. Для второй ячейки (индекс 2) создается новый стиль ячейки. Этот стиль разработан с оранжевым цветом переднего плана с использованием \ setfillforegroundcolor \ и \ indexedcolors.orange.getindex () \. Образец заполнения устанавливается на «твердый передний план» с использованием \ setFillPattern (fillPatterntype.solid_foreground) \. Другая ячейка создается в индексе 2 в том же ряду и заполнена значением «x». Недавно сгенерированный стиль затем назначается этой ячейке с использованием \ setcellstyle \. После настройки появлений ячейки измененная рабочая книга записывается в файл с именем «Workbook.xlsx» с использованием \ fileOutputStream \. Таким образом, этот пример кода демонстрирует, как использовать библиотеку Apache POI для манипулирования появлением ячеек в файле Excel. Продемонстрированные методы включают создание индивидуальных стилей ячеек для управления фоном и цветами переднего плана, а также заполнения шаблонов, обеспечивая гибкость в визуальной настройке электронных таблиц Excel с использованием Java.

Заключение {.wp-block heading}

Во всех приведенных выше примерах Java для библиотеки Apache POI мы продемонстрировали, как работать с содержимым файла Excel из вашего приложения Java. Образцы кода показали, как создавать ячейки в файле Excel, установить их внешний вид, установить стиль ячейки на различные типы данных, такие как строка, числовые, десятичные и т. Д., И как установить тип типа ячейки на дату. Мы добавим больше примеров для работы с файлами Excel, используя Apache Poi для Java, так что следите за обновлениями.

см. Также