Если вы являетесь разработчиком приложений Java, работающим с Excel из ваших приложений Java, вам было бы заинтересовано в предоставлении функциональности манипулирования данными Excel в вашем приложении. Excel позволяет форматировать стиль ячейки, установить тип ячейки для разных типов данных, заполнять ячейку разными цветами и так далее. Apache Poi служит вашим мостом между Java и Excel, предлагая инструменты для манипулирования Excel xlsx файлы программно. В этой серии блогов мы представим манипуляции по искусству клеток Excel с использованием Apache Poi в Java. Давайте погрузимся и обнаружим синергию кода и электронных таблиц!
СОДЕРЖАНИЕ
На протяжении всего блога мы проведем образцы кода и объяснить их следующим образом:
- Создание ячеек в файле Excel
- Создайте ячейки даты в Excel
- Работа с различными типами клеток
- Установка внешнего вида ячейки
Работа с ячейками в файле 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, как объясняется на следующих шагах.
- Строка создается в индексе 2 на листе с использованием \
**Createrow** (2) \
. Затем ячейки заполняются в этом ряду следующими данными. - Первой ячейке (индекс 0) присваивается десятичное значение 1.1 с использованием метода \
**SetCellValue** \
. - Во второй ячейке (индекс 1) текущая дата и время вставляются с использованием объекта \
date \
через метод \**setCellValue** \
. - Третья ячейка (индекс 2) содержит дату и время из экземпляра \
\
, установленного с использованием метода \**setCellValue** \
. - Четвертая ячейка (индекс 3) содержит текст «строка».
- Пятая ячейка (индекс 4) обозначена для логического значения «истина».
- Двигаясь вперед, конкретный тип ячейки присваивается шестой ячейке (индекс 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 на листе с использованием \
createrow (1) \
. Следующие изменения вносятся в ячейки в этом ряду. - Для первой ячейки (индекс 1) создается индивидуальный стиль ячейки с использованием \
wb.createcellstyle () \
. Этот стиль настроен с цветом аква -фонов с использованием \setFillbackgroundcolor \
и \IndexedColors.aqua.getIndex () \
. Паттерн для фона устанавливается на «большие пятна» с использованием \setFillPattern (fillPatterntype.big_spots) \
. Ячейка создается в этой строке в индексе 1 и заполнена значением «x». Ранее созданный стиль применяется к этой ячейке с использованием \setcellstyle \
. - Для второй ячейки (индекс 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, так что следите за обновлениями.