CSV sang XLSX trong Java là một yêu cầu thường gặp khi các ứng dụng cần trao đổi dữ liệu với người dùng Excel. Aspose.HTML Cloud SDK for Java cung cấp một API dựa trên đám mây mạnh mẽ, xử lý chuyển đổi này một cách hiệu quả. Trong hướng dẫn này, bạn sẽ thấy cách thiết lập phụ thuộc Maven, đọc dữ liệu CSV bằng streams, tạo một workbook XLSX và gọi chuyển đổi thông qua REST API. Khi kết thúc, bạn sẽ có một ví dụ hoàn chỉnh, sẵn sàng cho môi trường sản xuất mà bạn có thể điều chỉnh cho dự án của mình.
Prerequisites and Setup
Trước khi bắt đầu, hãy chắc chắn rằng bạn đã có những thứ sau:
- Đã cài đặt Java 17 hoặc phiên bản mới hơn.
- Một tài khoản Aspose Cloud với client ID và client secret.
- Đã cài đặt Maven để quản lý phụ thuộc.
Thêm Aspose.HTML Cloud SDK for Java vào dự án của bạn:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html-cloud</artifactId>
<version>23.12</version>
</dependency>
Ngoài ra, bạn có thể cài đặt gói trực tiếp từ dòng lệnh:
mvn install com.aspose:aspose-html-cloud
Tải xuống các tệp nhị phân SDK mới nhất từ trang tải xuống. Sau khi phụ thuộc đã được giải quyết, bạn đã sẵn sàng để bắt đầu viết mã. Phần tiếp theo sẽ hướng dẫn bạn thực hiện từng bước.
Chuyển đổi CSV sang XLSX trong Java: Hướng dẫn từng bước
Bước 1: Tải CSV nguồn bằng Java Streams
Đọc tệp CSV theo từng dòng giúp giảm mức sử dụng bộ nhớ, điều này rất quan trọng đối với các tệp lớn.
Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);
Bước 2: Khởi tạo Aspose.HTML Cloud Client
Tạo một thể hiện client với thông tin xác thực của bạn. Lớp client được tài liệu hoá trong Tham khảo API.
HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");
Bước 3: Chuyển đổi nội dung CSV sang XLSX
SDK chấp nhận dữ liệu CSV dưới dạng chuỗi và trả về một luồng nhị phân XLSX.
String csvContent = String.join("\n", csvLines);
ConvertDocumentRequest request = new ConvertDocumentRequest()
.outputFormat("xlsx")
.inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);
Bước 4: Lưu tệp XLSX kết quả
Ghi mảng byte trả về vào một tệp trên đĩa.
Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);
Bước 5: Xác minh quá trình chuyển đổi (Tùy chọn)
Bạn có thể nhanh chóng mở tệp đã tạo bằng Apache POI hoặc bất kỳ trình xem bảng tính nào để đảm bảo dữ liệu được định dạng đúng.
Ví dụ mã đầy đủ: Chuyển đổi CSV sang XLSX với Aspose.HTML Cloud SDK
Chương trình sau đây gộp tất cả các bước lại thành một lớp duy nhất, có thể chạy được.
import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
import com.aspose.html.cloud.api.HtmlApi;
import com.aspose.html.cloud.model.ConvertDocumentRequest;
public class CsvToXlsxConverter {
public static void main(String[] args) throws Exception {
// 1. Load CSV file
Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);
String csvContent = String.join("\n", csvLines);
// 2. Initialise Aspose.HTML Cloud client
HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");
// 3. Convert CSV to XLSX
ConvertDocumentRequest request = new ConvertDocumentRequest()
.outputFormat("xlsx")
.inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);
// 4. Save XLSX file
Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);
System.out.println("Conversion completed. XLSX saved to " + xlsxPath.toAbsolutePath());
}
}
Lưu ý: Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật các đường dẫn tệp (
input.csv,output.xlsx), xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển của bạn. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.
Sử dụng cURL để Gọi Aspose.HTML Cloud cho việc tạo XLSX
Việc chuyển đổi tương tự có thể được thực hiện thông qua REST API. Dưới đây là các lệnh cURL cần thiết.
- Xác thực và nhận mã truy cập
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
Phản hồi chứa một access_token mà bạn sẽ sử dụng trong các cuộc gọi tiếp theo.
- Tải lên tệp CSV
curl -X POST "https://api.aspose.cloud/v4.0/html/storage/file/input.csv" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.csv"
- Thực hiện chuyển đổi
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?outputFormat=xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputPath":"input.csv"}' \
-o output.xlsx
- Tải xuống tệp XLSX (nếu bạn đã chọn vị trí đầu ra khác)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.xlsx
Để xem danh sách đầy đủ các tham số, hãy tham khảo tài liệu API chính thức.
Các cân nhắc về hiệu suất cho việc chuyển đổi CSV lớn sang XLSX
- Phát luồng đầu vào CSV - Sử dụng
Files.lineshoặc một bộ đọc đệm để xử lý các hàng một cách tuần tự thay vì tải toàn bộ tệp vào bộ nhớ. - Tải lên theo lô - Khi làm việc với các tệp lớn hơn 100 MB, chia CSV thành các phần nhỏ hơn và chuyển đổi từng phần riêng biệt, sau đó hợp nhất các phần XLSX kết quả nếu cần.
- Bật chuyển đổi bất đồng bộ - Thêm tham số truy vấn
async=truevào yêu cầu chuyển đổi để cho dịch vụ đám mây xử lý tệp trong nền, giảm thời gian chờ phía máy khách. - Điều chỉnh cài đặt đầu ra - Đặt cờ
preserveFormattingthànhfalsenếu bạn không cần các kiểu cell chính xác; điều này giảm kích thước tải lên và tăng tốc độ chuyển đổi.
Kết luận
Hướng dẫn này đã trình bày cách thực hiện chuyển đổi CSV sang XLSX trong Java bằng cách sử dụng Aspose.HTML Cloud SDK for Java. Bạn đã học cách cấu hình Maven, đọc dữ liệu CSV bằng streams, gọi API đám mây và xử lý các tệp lớn một cách hiệu quả. Hãy nhớ rằng cần có giấy phép thương mại để sử dụng trong môi trường sản xuất; bạn có thể lấy giấy phép tạm thời từ trang giấy phép tạm thời và xem các tùy chọn giá đầy đủ trên trang sản phẩm. Với những công cụ này, bạn có thể tích hợp chức năng chuyển đổi CSV‑to‑XLSX liền mạch vào bất kỳ ứng dụng Java nào.
Câu hỏi thường gặp
-
Cách tốt nhất để xử lý các tệp CSV có dấu phẩy bên trong các trường được đặt trong dấu ngoặc kép là gì?
Sử dụng một bộ phân tích CSV mạnh mẽ như Apache Commons CSV trước khi truyền dữ liệu tới API chuyển đổi. Bộ phân tích này tôn trọng các dấu phân cách được đặt trong ngoặc kép, đảm bảo việc trích xuất hàng chính xác. -
Aspose.HTML Cloud SDK có hỗ trợ xuất XLSX mà không cần bước trung gian HTML không?
Có. Phương thứcconvertDocumentcó thể nhận nội dung CSV thô và tạo trực tiếp tệp XLSX, như được minh họa trong các ví dụ mã. -
Tôi có thể chạy chuyển đổi cục bộ mà không sử dụng đám mây không?
Aspose.HTML Cloud SDK là một dịch vụ dựa trên đám mây, vì vậy cần có kết nối internet và thông tin xác thực hợp lệ. Đối với các kịch bản triển khai tại chỗ, hãy xem xét Aspose.Cells, đây là một sản phẩm riêng biệt. -
Làm thế nào để tôi giám sát trạng thái của yêu cầu chuyển đổi bất đồng bộ?
API trả về một ID công việc khi sử dụngasync=true. Thực hiện polling tới endpoint/jobs/{jobId}để kiểm tra trạng thái, sau đó tải xuống kết quả khi công việc hoàn thành.