Trong bài viết trước của chúng tôi, chúng tôi đã trải qua các chi tiết của Apache Poi, API Java nguồn mở để làm việc với các định dạng tệp Microsoft. Trong bài viết này, chúng tôi sẽ đi qua thành phần Apache POI để làm việc với Excel Workbooks. Chúng tôi cũng sẽ chỉ ra cách sử dụng Apache POI để tạo tệp Excel và thêm các tờ vào nó bằng thư viện Java này.
Apache POI Java API để truy cập các định dạng tệp excel
API APIA POI Java cung cấp các thành phần riêng biệt để làm việc với hai định dạng tệp Excel khác nhau. Đó là:
- HSSF (Định dạng bảng tính khủng khiếp)-để làm việc với các định dạng tệp Excel 97-2003
- XSSF (Định dạng bảng tính XML) - Để làm việc với các định dạng tệp Excel 2007 và sau Cụ thể, HSSF cho phép bạn đọc các tệp XLS trong khi XSSF cho phép bạn đọc XLS và XLSX. Cả hai API này cho phép bạn tạo, đọc và thao tác các tệp Excel từ bên trong ứng dụng Java của bạn mà không cần đi vào chi tiết của các định dạng tệp cơ bản.
Làm thế nào để tạo tệp excel xlsx trong java?
Trong ví dụ này, chúng tôi sẽ trải qua các chi tiết về việc sử dụng Apache POI XSSF để tạo các tệp XLSX trong ứng dụng Java của chúng tôi. Ở giai đoạn này, chúng tôi cho rằng bạn đã cài đặt và định cấu hình API APIA API trong ứng dụng Java của mình. Nếu bạn đã thực hiện như vậy, bạn có thể truy cập Cài đặt Apache POI cho Java và làm theo các bước.
Các bước để tạo sổ làm việc excel bằng Apache POI
Tạo một sổ làm việc excel bằng API APACHE POI cho Java rất đơn giản và dễ dàng, và có thể đạt được bằng các bước sau.
- Tạo sổ làm việc bằng cách sử dụng xssfworkbook lớp
- Đóng luồng đầu ra. Mã Java để tạo sổ làm việc Excel bằng Apache POI như sau.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
Mã trên sẽ tạo một sổ làm việc Excel ở định dạng tệp XLSX. Tuy nhiên, nếu bạn sẽ mở sổ làm việc ở giai đoạn này, bạn sẽ nhận được lỗi sau.
Lý do cho điều này là một cuốn sách bài tập Excel sử dụng Apache POI mà không có bất kỳ bảng tính nào gây ra lỗi này. Để giải quyết vấn đề này, chúng tôi cần thêm ít nhất một bảng tính vào tệp Excel được tạo.
Thêm bảng tính vào sổ làm việc excel với Apache poi trong java
Điều này đưa chúng ta đến bước mà chúng ta cần thêm một bảng tính vào sổ làm việc để nó hoạt động đúng. Điều này có thể đạt được bằng cách sử dụng đối tượng XSSFSHEET được thêm vào sổ làm việc như trong mẫu mã sau.
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...");
}
Hoàn thành XSSFWorkbook Ví dụ
Bây giờ chúng ta đã thấy cách tạo một sổ làm việc và thêm một tờ vào nó với API POI API cho Java, hãy để xem cách chúng ta sẽ thêm các hàng và ô vào bảng tính được tạo. Lớp XSSFSHEET có phương thức Createrow cho phép bạn thêm một hàng vào trang tính. Điều này trả về một đối tượng của lớp hàng đại diện cho một hàng trong bảng tính Excel. Để tạo các ô trong bảng tính, chúng ta phải sử dụng phương thức CreatEcell trả về một đối tượng của lớp XSSFCell. Phương pháp SetCellValue của XSSFCELL được sử dụng để đặt giá trị của ô. Một ví dụ hoàn chỉnh về việc tạo sổ làm việc bằng XSSFWorkbook, thêm một tờ bằng cách sử dụng XSSFSHEET và thêm XSSFrow vào nó được hiển thị bên dưới.
// 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();
Kết luận
Trong bài viết trên blog này, chúng tôi đã trình diễn cách tạo một sổ làm việc excel bằng API APIA API cho Java. Chúng tôi đã sử dụng XSSFWorkbook để tạo sổ làm việc XLSX, thêm bảng tính vào nó, thêm các hàng vào bảng tính và dữ liệu được điền vào các ô trong bảng tính. Để biết thêm các ví dụ về việc làm việc với các sổ làm việc Excel bằng cách sử dụng Apache POI cho Java, hãy theo dõi.