В нашей предыдущей статье мы рассказали подробности 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. Это:

  1. HSSF (ужасный формат электронной таблицы)-для работы с форматами файлов Excel 97-2003
  2. 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 просты и легко, и может быть достигнуто с помощью следующих шагов.

  1. Создайте рабочую книгу, используя класс xssfwork
  2. Закройте выходной поток. 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, следите за обновлениями.