В нашей предыдущей статье мы рассказали подробности Apache Poi, Java API с открытым исходным кодом для работы с форматами файлов Microsoft. В этой статье мы проведем компонент Apache POI для работы с рабочими книгами Excel. Мы также покажем, как использовать Apache POI для создания файла Excel и добавить в него листы с помощью этой библиотеки Java.
API API APACHE POI JAVA для доступа к форматам файлов Excel {.wp-Block heading}
Apache Poi Java API предоставляет отдельные компоненты для работы с двумя различными форматами файлов Excel. Это:
- HSSF (ужасный формат электронной таблицы)-для работы с форматами файлов Excel 97-2003
- xssf (формат электронной таблицы XML) - для работы с Excel 2007 и более поздними форматами файлов В частности, hssf позволяет читать файлы XLS, тогда как xssf позволяет читать файлы xls и xlsx. Оба эти API позволяют вам создавать, читать и манипулировать файлами Excel из вашего приложения Java, не вдаваясь в подробности основных форматов файлов.
Как создать файл Excel XLSX в Java?
В этом примере мы рассмотрим детали использования Apache Poi XSSF для создания файлов XLSX в нашем приложении Java. На этом этапе мы предполагаем, что вы уже установили и настроили API Apache POI в своем приложении Java. Если вы этого не сделали, вы можете посетить установить Apache Poi для Java и выполнить шаги.
Шаги для создания рабочей книги Excel с использованием Apache Poi {.wp-Block heading}
Создание рабочей книги Excel с использованием API API Apache POI для Java просты и легко, и может быть достигнуто с помощью следующих шагов.
- Создайте рабочую книгу, используя класс xssfwork
- Закройте выходной поток. Java Code для создания рабочей книги Excel с использованием Apache Poi выглядит следующим образом.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
Приведенный выше код создаст рабочую книгу Excel в формате файла XLSX. Однако, если вы откроете рабочую книгу на этом этапе, вы получите следующую ошибку.
Причина этого заключается в том, что рабочая книга Excel, использующая Apache Poi без какого -либо рабочего листа, дает эту ошибку. Чтобы решить эту проблему, нам нужно добавить хотя бы один лист в сгенерированный файл Excel.
Добавить рабочий лист в Workbook Excel с Apache Poi в Java {.wp-block heading}
Это подводит нас к шагу, где нам нужно добавить рабочий лист в рабочую книгу, чтобы она работала должным образом. Это может быть достигнуто с помощью объекта XSSFSHEET, который добавляется в рабочую книгу, как показано в следующем примере кода.
XSSFWorkbook wb1 = new XSSFWorkbook();
try
{
XSSFSheet sheet1 = wb1.createSheet("Ripon");
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
wb1.write(fileOut);
fileOut.close();
}
catch(Exception ex)
{
System.out.println("XLSX Generated Error...");
}
Завершить пример xssfworkbook {.wp-block heading}
Теперь, когда мы видели, как создать рабочую книгу и добавить в нее лист с Apache Poi API для Java, давайте посмотрим, как мы добавим строки и ячейки к созданному листу. В классе XSSFSHEET есть метод Createrow, который позволяет добавлять ряд в лист. Это возвращает объект класса строк, который представляет строку в рабочем листе Excel. Чтобы создать ячейки в рабочем листе, мы должны использовать метод CreateCell, который возвращает объект класса XSSFCell. Метод SetCellValue в XSSFCell используется для установки значения ячейки. Полный пример создания рабочей книги с использованием xssfworkbook, добавления листа с использованием xssfsheet и добавления xssfrow к нему показан ниже.
// Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();
// Creating a blank Excel sheet
XSSFSheet sheet = workbook.createSheet("student Details");
// Creating an empty TreeMap of string and Object][] type
Map<String, Object[]> data = new TreeMap<String, Object[]>();
// Writing data to Object[]
// using put() method
data.put("1", new Object[] { "ID", "CITY", "STATE" });
data.put("2", new Object[] { 1, "Clanton", "Alabama" });
data.put("3", new Object[] { 2, "Cordova", "Alaska" });
data.put("4", new Object[] { 3, "Clifton", "Arizona" });
data.put("5", new Object[] { 4, "Arcadia", "California" });
// Iterating over data and writing it to sheet
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
// Creating a new row in the sheet
XSSFRow row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
// This line creates a cell in the next column of that row
XSSFCell cell = row.createCell(cellnum++);
if (obj instanceof String)
cell.setCellValue((String)obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer)obj);
}
}
// Writing the workbook
FileOutputStream out = new FileOutputStream("gfgcontribute.xlsx");
workbook.write(out);
// Closing file output connections
out.close();
Заключение {.wp-block heading}
В этой статье в блоге мы продемонстрировали, как создать рабочую книгу Excel, используя API Apache Poi для Java. Мы использовали xssfworkbook для генерации рабочей книги XLSX, добавили к нему рабочие листы, добавили строки на лист и заполненные данные в ячейках на рабочем листе. Для получения дополнительных примеров работы с рабочими книгами Excel с использованием Apache Poi для Java, следите за обновлениями.