W naszym poprzednim artykule przeszliśmy przez szczegóły Apache Poi, interfejsu API Java z open source do pracy z formatami plików Microsoft. W tym artykule przejdziemy do komponentu Apache Poi do pracy z skoroszytami Excel. Pokażmy również, jak używać Apache POI do utworzenia pliku Excel i dodawania do niego arkuszy za pomocą tej biblioteki Java.

Apache Poi Java API do dostępu do formatów plików Excel

Apache Poi Java API zapewnia osobne komponenty do pracy z dwoma różnymi formatami plików Excel. To są:

  1. HSSF (Format okropnego arkusza kalkulacyjnego)-do pracy z formatami plików Excel 97-2003
  2. XSSF (format arkusza kalkulacyjnego XML) - do pracy z formatami Excel 2007 i późniejszymi plikami W szczególności HSSF pozwala odczytać pliki XLS, podczas gdy XSSF pozwala odczytać pliki XLS i XLSX. Oba te interfejsy API pozwalają tworzyć, odczytać i manipulować plikami Excel z aplikacji Java bez wchodzenia w szczegóły podstawowych formatów plików.

Jak utworzyć plik Excel XLSX w Javie?

W tym przykładzie przeglądamy szczegóły korzystania z APACHE POI XSSF do tworzenia plików XLSX w naszej aplikacji Java. Na tym etapie zakładamy, że zainstalowałeś i skonfigurowałeś API API APACHE POI w aplikacji Java. Jeśli tego nie zrobiłeś, możesz odwiedzić zainstaluj apache POI dla Java i wykonać kroki.

Kroki, aby utworzyć skoroszyt Excel za pomocą Apache POI

Tworzenie skoroszytu Excel za pomocą API API Apache POI dla Java jest proste i łatwe i można go osiągnąć za pomocą następujących kroków.

  1. Utwórz skoroszyt za pomocą klas XSSFworkbook
  2. Zamknij strumień wyjściowy. Kod Java do tworzenia skoroszytu Excel za pomocą Apache POI jest następujący.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

Powyższy kod utworzy skoroszyt Excel w formacie pliku XLSX. Jeśli jednak otworzysz skoroszyt na tym etapie, otrzymasz następujący błąd.

Powodem tego jest to, że skoroszyt Excel za pomocą Apache POI bez żadnego arkusza roboczego podaje ten błąd. Aby rozwiązać ten problem, musimy dodać co najmniej jeden arkusz do wygenerowanego pliku Excel.

Dodaj arkusz roboczy do Excel Worbook z Apache POI w Javie

To prowadzi nas do kroku, w którym musimy dodać arkusz do skoroszytu, aby działał poprawnie. Można to osiągnąć za pomocą obiektu XSSFSheet, który jest dodawany do skoroszytu, jak pokazano w poniższej próbce kodu.

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...");
}

Kompletny przykład xssfworkbook

Teraz, gdy widzieliśmy, jak utworzyć skoroszyt i dodać do niego arkusz za pomocą API Apache Poi dla Java, rzućmy okiem na to, jak dodamy wiersze i komórki do utworzonego arkusza roboczego. Klasa XSSFSHEEK ma CREATHOW METOTY, która pozwala dodać wiersz do arkusza. Zwraca obiekt klasy wierszy, który reprezentuje wiersz w arkuszu Excel. Aby utworzyć komórki w arkuszu, musimy użyć metody CreateCell, która zwraca obiekt klasy XSSFCELL. Metoda SetCellValue XSSFCell jest używana do ustawienia wartości komórki. Kompletny przykład tworzenia skoroszytu za pomocą XSSFworkbook, dodawania arkusza za pomocą arkusza XSSFSHET i dodawania XSSFROW do niego pokazano poniżej.

// 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();

Wniosek

W tym artykule na blogu pokazaliśmy, jak utworzyć skoroszyt Excel za pomocą API API APACHE POI dla Java. Użyliśmy XSSFworkbook do wygenerowania skoroszytu XLSX, dodania do niego arkuszy, dodania wierszy do arkusza roboczego i wypełnionych danych w komórkach w arkuszu. Aby uzyskać więcej przykładów pracy z skoroszytami Excel przy użyciu Apache Poi dla Java, bądźcie czujni.