Xuất dữ liệu sang Excel trong Java

Bạn có thể dễ dàng xuất dữ liệu sang Microsoft Excel từ nhiều nguồn có sẵn khác nhau, chẳng hạn như JSON và CSV. Là nhà phát triển Java, bạn có thể sử dụng nhiều kỹ thuật để thực hiện công việc, ví dụ: bạn có thể xuất dữ liệu từ Mảng, Danh sách đối tượng hoặc thậm chí trực tiếp từ JSON và CSV sang tài liệu Excel theo chương trình. Trong bài viết này, chúng ta sẽ thảo luận về các kỹ thuật đơn giản và dễ dàng, đồng thời bạn sẽ tìm hiểu cách xuất dữ liệu sang Excel bằng Java.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

Xuất dữ liệu Java sang Thư viện Excel

Để xuất dữ liệu sang Excel, tôi sẽ sử dụng Aspose.Cells for Java API. Đây là API thao tác bảng tính mạnh mẽ cho phép bạn tạo, chỉnh sửa hoặc chuyển đổi các tệp Excel trong các ứng dụng Java. API cho phép bạn thực hiện các tính năng tự động hóa Excel theo chương trình mà không cần ứng dụng Microsoft Excel.

Bạn có thể tải xuống JAR của API hoặc chỉ cần thêm cấu hình pom.xml sau vào ứng dụng Java dựa trên Maven của bạn để thử các ví dụ mã được đề cập bên dưới.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.8</version>
</dependency>

Xuất mảng sang Excel trong Java

Bạn có thể dễ dàng xuất dữ liệu từ mảng một chiều hoặc mảng hai chiều sang tài liệu Excel. Mảng có thể là kiểu tham chiếu hoặc kiểu giá trị. Bạn có thể xuất dữ liệu từ một mảng sang Excel bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

  1. Tạo một thể hiện của lớp Workbook
  2. Nhận bảng tính trong một phiên bản của lớp Worksheet
  3. Tạo một mảng chứa các giá trị chuỗi
  4. Gọi phương thức importArray() với mảng
  5. Lưu tệp đầu ra bằng cách gọi phương thức save() của lớp Workbook

Mẫu mã sau đây cho biết cách xuất một mảng chuỗi sang Excel bằng Java.

// Khởi tạo một đối tượng Workbook
Workbook workbook = new Workbook();

// Lấy tham chiếu của bảng tính
Worksheet worksheet = workbook.getWorksheets().get(0);

// Tạo một mảng chứa tên dưới dạng giá trị chuỗi
String[] names = new String[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };

// Xuất mảng tên sang hàng đầu tiên và cột đầu tiên theo chiều dọc
worksheet.getCells().importArray(names, 0, 0, true);

// Lưu tệp Excel
workbook.save("C:\\Files\\output.xlsx");
Xuất mảng sang Excel trong Java

Xuất mảng sang Excel trong Java

Lớp Workbook của API là lớp chính để tạo bảng tính Excel. Nó cung cấp chức năng để mở và lưu các tệp excel gốc. Phương thức save() của lớp này được sử dụng để lưu tệp đầu ra tại đường dẫn tệp đã chỉ định.

Lớp Worksheet đại diện cho một trang tính duy nhất và cung cấp chức năng để làm việc với các ô và hàng.

Phương thức importArray() của lớp Cells xuất một mảng chuỗi sang một trang tính. Nó có các tham số đầu vào sau:

  • stringArray: Mảng các giá trị String
  • firstRow: Số hàng của ô đầu tiên cần xuất sang
  • firstColumn: Số cột của ô đầu tiên cần xuất sang
  • isVertical: Nó chỉ định xuất dữ liệu theo chiều dọc hay chiều ngang

API cũng cung cấp các phiên bản nạp chồng của phương thức importArray() để xuất một mảng số nguyên hoặc gấp đôi sang một trang tính.

Xuất mảng hai chiều sang Excel

Tương tự, bạn có thể xuất mảng hai chiều sang tệp Excel. Mẫu mã sau đây cho biết cách xuất mảng hai chiều sang tệp Excel trong Java.

// Khởi tạo một đối tượng Workbook
Workbook workbook = new Workbook();

// Lấy tham chiếu của bảng tính
Worksheet worksheet = workbook.getWorksheets().get(0);

// Tạo mảng số nguyên hai chiều
int[][] array2D = { 
  { 1, 2 }, 
  { 3, 4 }, 
  { 5, 6 }, 
  { 7, 8 } 
};

// Xuất mảng tên sang hàng đầu tiên và cột đầu tiên theo chiều dọc
worksheet.getCells().importArray(array2D, 0, 0);

// Lưu tệp Excel
workbook.save("C:\\Files\\output.xlsx");
Xuất mảng hai chiều sang Excel

Xuất mảng hai chiều sang Excel

Lớp Cells cung cấp phương thức importArray() để xuất một mảng số nguyên hai chiều sang một trang tính. API cũng cung cấp các phiên bản quá tải của phương pháp này để xuất mảng chuỗi hai chiều hoặc nhân đôi thành một bảng tính.

Xuất ArrayList sang Excel trong Java

Bạn có thể xuất dữ liệu từ ArrayList sang Excel bằng cách thực hiện theo các bước được đề cập bên dưới:

  1. Tạo một thể hiện của lớp Workbook
  2. Nhận bảng tính trong một phiên bản của lớp Worksheet
  3. Tạo một danh sách mảng chứa các giá trị chuỗi
  4. Gọi phương thức importArrayList() với danh sách mảng
  5. Lưu tệp đầu ra bằng cách gọi phương thức save() của lớp Workbook

Mẫu mã sau đây cho biết cách xuất ArrayList sang Excel trong Java.

// Khởi tạo một đối tượng Workbook
Workbook workbook = new Workbook();

// Lấy tham chiếu của bảng tính
Worksheet worksheet = workbook.getWorksheets().get(0);

// Khởi tạo một đối tượng ArrayList
ArrayList<String> list = new ArrayList<String>();

// Thêm một vài tên vào danh sách dưới dạng giá trị chuỗi
list.add("Laurence Chen");
list.add("Roman Korchagin");
list.add("Kyle Huang");
list.add("Tommy Wang");

// Xuất nội dung của ArrayList theo chiều dọc ở hàng đầu tiên và cột đầu tiên của bảng tính. 
worksheet.getCells().importArrayList(list, 0, 0, true);

// Lưu tệp Excel
workbook.save("C:\\Files\\Output.xlsx");
Xuất danh sách mảng sang Excel trong Java

Xuất ArrayList sang Excel trong Java

Phương thức importArrayList() của lớp Cells xuất một ArrayList dữ liệu sang một trang tính. Nó có bốn tham số bao gồm ArrayList dữ liệu. Các tham số khác là FirstRow, FirstColumn và isVertical.

Xuất bộ sưu tập các đối tượng tùy chỉnh sang Excel trong Java

Bạn có thể xuất dữ liệu từ một tập hợp các đối tượng tùy chỉnh sang Excel bằng cách làm theo các bước được đề cập bên dưới:

  1. Tạo một thể hiện của lớp Workbook
  2. Nhận bảng tính trong một phiên bản của lớp Worksheet
  3. Tạo một danh sách mảng các đối tượng tùy chỉnh
  4. Gọi phương thức importCustomObjects() với danh sách mảng
  5. Lưu tệp đầu ra bằng cách gọi phương thức save() của lớp Workbook

Mẫu mã sau đây cho biết cách xuất một tập hợp các đối tượng tùy chỉnh sang Excel trong Java.

// Khởi tạo một Workbook mới
Workbook book = new Workbook();

// Lấy tham chiếu của bảng tính
Worksheet sheet = book.getWorksheets().get(0);

// Xác định một ArrayList của người
List<Person> list = new ArrayList<Person>();

list.add(new Person("Mike", 25, "Software Engineer"));
list.add(new Person("Steve", 30, "Doctor"));
list.add(new Person("Billy", 35, "Teacher"));

// Chúng tôi chỉ chọn cột Tên và Tuổi, không phải tất cả, để xuất sang bảng tính         
sheet.getCells().importCustomObjects((Collection)list,
    new String[] { "Name", "Age" }, // propertyNames
    true, // isPropertyNameShown
    0, // firstRow
    0, // firstColumn
    list.size(), // Number of objects to be exported
    true, // insertRows
    null, // dateFormatString
    false); // convertStringToNumber

// Lưu tệp Excel
book.save("C:\\Files\\Output.xlsx");
Bộ sưu tập các đối tượng tùy chỉnh sang Excel trong Java

Bộ sưu tập các đối tượng tùy chỉnh sang Excel trong Java

Phương thức importCustomObjects() của lớp Ô xuất danh sách các đối tượng tùy chỉnh và lấy các tham số sau. API cũng cung cấp phiên bản quá tải của phương thức này với ít tham số hơn.

  • list: Bộ sưu tập các đối tượng tùy chỉnh
  • propertyName: Chỉ định tên cho một thuộc tính cụ thể để xuất. Nếu nó là null, nó sẽ xuất tất cả các thuộc tính của đối tượng
  • isPropertyNameShown: Cho biết tên thuộc tính có được xuất sang hàng đầu tiên hay không
  • firstRow: Số hàng của ô đầu tiên cần xuất
  • firstColumn: Số cột của ô đầu tiên cần xuất
  • rowNumber: Số hàng được xuất
  • InsertRows: Cho biết liệu các hàng bổ sung có được thêm vào để vừa với dữ liệu hay không
  • dataFormatString: Chuỗi định dạng ngày tháng cho ô
  • ConvertStringToNumber: Cho biết liệu phương thức này có cố gắng chuyển đổi chuỗi thành số hay không.

Xuất dữ liệu sang Excel với các ô được hợp nhất trong Java

Bạn có thể xuất dữ liệu từ một tập hợp các đối tượng sang một trang tính chứa các ô đã hợp nhất bằng cách làm theo các bước được đề cập bên dưới:

  1. Tạo một thể hiện của lớp Workbook with template file path
  2. Nhận bảng tính trong một phiên bản của lớp Worksheet
  3. Tạo một danh sách mảng các đối tượng
  4. Tạo một thể hiện của lớp ImportTableOptions
  5. Gọi phương thức importCustomObjects() với danh sách mảng
  6. Lưu tệp đầu ra bằng cách gọi phương thức save() của lớp Workbook

Mẫu mã sau đây cho biết cách xuất một tập hợp các đối tượng tùy chỉnh sang một trang tính Excel có các ô được hợp nhất trong Java.

// Mở một Workbook hiện có.
Workbook workbook = new Workbook("C:\\Files\\SampleMergedTemplate.xlsx");

// Lấy tài liệu tham khảo của bảng tính
Worksheet sheet = workbook.getWorksheets().get(0);

// Khởi tạo một đối tượng ArrayList
List<Product> productList = new ArrayList<Product>();

// Tạo bộ sưu tập sản phẩm
for (int i = 0; i < 3; i++)
{
  Product product = new Product(i, "Product - " + i);
    productList.add(product);
}

// Xác định các tùy chọn nhập Bảng
ImportTableOptions tableOptions = new ImportTableOptions();

// Đặt thuộc tính CheckMergedCells thành true
tableOptions.setCheckMergedCells(true);
tableOptions.setFieldNameShown(false);

// Xuất dữ liệu ra mẫu excel (ở hàng thứ hai, cột đầu tiên)           
sheet.getCells().importCustomObjects((Collection)productList, 1, 0, tableOptions);

// Lưu tệp Excel
workbook.save("C:\\Files\\Output.xlsx", SaveFormat.XLSX);
Xuất dữ liệu sang Excel với các ô được hợp nhất trong Java

Xuất dữ liệu sang Excel với các ô được hợp nhất trong Java

Lớp ImportTableOptions cung cấp một số tùy chọn để xuất dữ liệu vào các ô. setCheckMergedCells cho biết liệu có kiểm tra các ô đã hợp nhất hay không. Thuộc tính setFieldNameShown cho biết tên trường có được xuất hay không.

Sao chép hàng và cột từ tệp Excel này sang tệp Excel khác trong Java

Bạn có thể dễ dàng sao chép các hàng và cột từ tệp Excel này sang tệp khác theo chương trình bằng cách thực hiện theo các bước được đề cập bên dưới:

  1. Tạo một thể hiện của lớp Workbook with source workbook input file
  2. Tạo một phiên bản của lớp Workbook cho sổ làm việc đích
  3. Nhận bảng tính nguồn và đích trong các phiên bản riêng biệt của lớp Bảng tính
  4. Gọi phương thức copyRows() của bảng tính đích với các ô của bảng tính nguồn
  5. Lưu tệp đầu ra sổ làm việc đích bằng cách gọi phương thức save() của lớp Workbook

Mẫu mã sau đây cho biết cách sao chép hàng và cột từ tệp Excel này sang tệp Excel khác bằng cách sử dụng Java.

// Mở tệp excel nguồn.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// Khởi tạo tệp excel đích.
Workbook destWorkbook = new Workbook();

// Lấy bảng tính đầu tiên của sổ làm việc nguồn.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// Lấy bảng tính đầu tiên của sổ làm việc đích.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// Sao chép tất cả các hàng của bảng tính đầu tiên của Sổ làm việc nguồn sang
// bảng tính đầu tiên của Workbook đích.
desWorksheet.getCells().copyRows(srcWorksheet.getCells(), 0, 0, srcWorksheet.getCells().getMaxDisplayRange().getRowCount());

// Lưu tập tin excel.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");	
Sao chép hàng và cột từ tệp Excel này sang tệp Excel khác trong Java

Sao chép hàng và cột từ tệp Excel này sang tệp khác trong Java

Bạn có thể sao chép các hàng cụ thể từ tệp Excel này sang tệp Excel khác. Mẫu mã sau đây cho biết cách sao chép các hàng cụ thể từ tệp Excel này sang tệp Excel khác bằng cách sử dụng Java.

// Mở tệp excel nguồn.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// Khởi tạo tệp excel đích.
Workbook destWorkbook = new Workbook();

// Lấy bảng tính đầu tiên của sổ làm việc nguồn.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// Lấy bảng tính đầu tiên của sổ làm việc đích.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// Sao chép hàng thứ hai của Sổ làm việc nguồn sang hàng đầu tiên của Sổ làm việc đích.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 1, 0);

// Sao chép hàng thứ tư của Sổ làm việc nguồn sang hàng thứ hai của Sổ làm việc đích.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 3, 1);

// Lưu tập tin excel.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");
Sao chép các hàng và cột cụ thể từ tệp Excel này sang tệp Excel khác trong Java

Sao chép các hàng và cột cụ thể từ tệp Excel này sang tệp Excel khác trong Java

Phương thức copyRows() sao chép dữ liệu và định dạng của toàn bộ hàng. Nó lấy các ô của bảng tính nguồn để sao chép làm tham số đầu vào cùng với chỉ mục hàng nguồn, chỉ mục hàng đích và số hàng được sao chép. API cũng cung cấp các phiên bản quá tải của phương pháp này để sao chép các hàng có CopyOptionsPasteOptions.

Tương tự, Bạn có thể sao chép dữ liệu cột từ tài liệu Microsoft Excel này sang tài liệu Microsoft Excel khác bằng cách sử dụng phương thức copyColumn() hoặc copyColumns().

Xuất dữ liệu JSON sang Excel trong Java

Bạn có thể dễ dàng xuất dữ liệu từ tệp JSON sang Excel bằng cách thực hiện theo các bước được đề cập bên dưới:

  1. Tạo một thể hiện của lớp Workbook
  2. Nhận bảng tính trong một phiên bản của lớp Worksheet
  3. Đọc tệp JSON
  4. Tạo một thể hiện của lớp CellsFactory
  5. Bắt đầu kiểu bằng cách gọi phương thức createStyle()
  6. Đặt các thuộc tính kiểu khác nhau như Căn chỉnh ngang, Màu phông chữ, v.v.
  7. Tạo một thể hiện của lớp JsonLayoutOptions
  8. Đặt kiểu tiêu đề với đối tượng kiểu
  9. Đặt mảng làm thuộc tính bảng thành true
  10. Gọi phương thức JsonUtility.importData() với đầu vào JSON và JsonLayoutOptions
  11. Lưu file đầu ra bằng cách gọi phương thức save() của lớp Workbook

Mẫu mã sau đây cho biết cách xuất dữ liệu từ tệp JSON sang Excel bằng Java.

// Khởi tạo một đối tượng Workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);

// Đọc tệp JSON
File file = new File("C:\\Files\\sample.json");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
    String jsonInput = "";
    String tempString;
    while ((tempString = bufferedReader.readLine()) != null) {
      jsonInput = jsonInput + tempString; 
    }
    bufferedReader.close();

// Đặt kiểu
CellsFactory factory = new CellsFactory();
Style style = factory.createStyle();
style.setHorizontalAlignment(TextAlignmentType.CENTER);
style.getFont().setColor(Color.getCyan());
style.getFont().setBold(true);

// Đặt tùy chọn JsonLayout
JsonLayoutOptions options = new JsonLayoutOptions();
options.setTitleStyle(style);
options.setArrayAsTable(true);

// Xuất dữ liệu JSON
JsonUtility.importData(jsonInput, worksheet.getCells(), 0, 0, options);

// Lưu tệp Excel
workbook.save("C:\\Files\\Output.xlsx");
{
  "quiz": {
    "sport": {
      "q1": {
        "question": "Which one is correct team name in NBA?",
        "answer": "Huston Rocket"
      }
    },
    "maths": {
      "q1": {
        "question": "5 + 7 = ?",
        "answer": "12"
      },
      "q2": {
        "question": "12 - 8 = ?",
        "answer": "4"
      }
    }
  }
}
Xuất dữ liệu JSON sang Excel trong Java

Xuất dữ liệu JSON sang Excel trong Java

Lớp CellsFactory khởi tạo các lớp của mô hình Cells. Phương thức createStyle() của lớp này tạo ra một đối tượng kiểu mới của lớp Style. Lớp Style cho phép thiết lập kiểu hiển thị của tài liệu Excel như font chữ, màu sắc, căn chỉnh, đường viền,…

Lớp JsonLayoutOptions cung cấp các tùy chọn về kiểu bố cục JSON. Phương thức setTitleStyle của lớp này được sử dụng để đặt kiểu tiêu đề đã xác định. Phương thức setArrayAsTable cho phép xử lý Array dưới dạng bảng.

API cung cấp lớp JsonUtility để xử lý JSON. Phương thức importData() của lớp này xuất chuỗi JSON và lấy các tham số sau:

  • json: Chuỗi JSON
  • tế bào: Các tế bào
  • hàng: Chỉ số hàng
  • cột: Chỉ mục cột
  • tùy chọn: Các tùy chọn để xuất chuỗi JSON

Nhận dữ liệu CSV trong Excel bằng Java

Bạn có thể xuất dữ liệu từ tệp CSV sang Excel bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

  1. Tạo một thể hiện của lớp LoadOptions với LoadFormat
  2. Tạo một phiên bản của lớp Workbook với đường dẫn tệp CSV và đối tượng LoadOptions
  3. Gọi phương thức save() của lớp Workbook và lưu tệp đầu ra

Mẫu mã sau đây cho biết cách xuất dữ liệu từ tệp CSV sang Excel bằng Java.

// Khởi tạo LoadOptions với CSV LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);

// Mở tệp CSV dưới dạng đối tượng Sổ làm việc
Workbook workbook = new Workbook("C:\\Files\\Sample.csv", loadOptions);

// Lưu tệp dưới dạng tài liệu Excel
workbook.save("C:\\Files\\Output.xlsx");
id,language,edition,author,streetAddress,city,state,postalCode
01,Java,third,Herbert Schildt,126,San Jone,CA,394221
02,C++,second,EAAAA,126,San Jone,CA,394221
03,.Net,second,E.Balagurusamy,126,San Jone,CA,394221
Xuất dữ liệu CSV sang Excel trong Java

Xuất dữ liệu CSV sang Excel trong Java

Lớp LoadOptions của API cung cấp các tùy chọn để tải tệp. Lớp LoadFormat chứa các hằng số biểu thị các định dạng tệp tải.

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách xuất dữ liệu sang Excel trong Java bằng nhiều cách. Chúng tôi đã giải thích cách xuất dữ liệu từ các tệp Mảng, JSON hoặc CSV sang Excel theo chương trình. Hơn nữa, bạn đã học cách sao chép hàng và cột từ tệp Excel này sang tệp khác bằng Java. Bạn có thể tìm hiểu thêm về Aspose.Cells for Java API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm

Các câu hỏi thường gặp

Làm cách nào để xuất dữ liệu sang tệp XLSX trong Java? Bạn có thể dễ dàng xuất dữ liệu từ Mảng, Bộ sưu tập đối tượng, JSON và CSV sang tệp XLSX bằng cách sử dụng Aspose.Cells for Java API dễ tích hợp trong ứng dụng Java của bạn.

Làm cách nào để xuất dữ liệu từ JSON sang Excel? API Aspose.Cells cung cấp JsonUtility để xuất dữ liệu từ tệp JSON sang Excel trong Java. Bạn có thể tìm thấy các bước đơn giản trong phần Xuất dữ liệu JSON sang Excel bằng Java.

Làm cách nào để xuất dữ liệu từ CSV sang Excel trong Java? Bạn chỉ cần tải tệp CSV và lưu dưới dạng XLSX bằng API Aspose.Cells. Bạn có thể tìm thấy các bước đơn giản trong phần Nhận dữ liệu CSV trong Excel bằng Java.