CSV 转换为 XLSX 在 Java 中是常见需求,当应用程序需要与 Excel 用户交换数据时。Aspose.HTML Cloud SDK for Java 提供强大的基于云的 API,能够高效处理此转换。在本指南中,您将看到如何设置 Maven 依赖、使用流读取 CSV 数据、生成 XLSX 工作簿,并通过 REST API 调用转换。完成后,您将拥有一个完整的、可投入生产的示例,能够适配到自己的项目中。

先决条件和设置

在开始之前,请确保您具备以下条件:

  • 已安装 Java 17 或更高版本。
  • 拥有 Aspose Cloud 账户及客户端 ID 和客户端密钥。
  • 已安装 Maven 用于依赖管理。

将 Aspose.HTML Cloud SDK for Java 添加到您的项目中:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-html-cloud</artifactId>
    <version>23.12</version>
</dependency>

或者,您可以直接从命令行安装该包:

mvn install com.aspose:aspose-html-cloud

下载页面下载最新的 SDK 二进制文件。依赖解析完成后,您即可开始编码。下一节将一步步带您完成实现。

Java 中的 CSV 转 XLSX 转换:逐步演练

第 1 步:使用 Java Streams 加载源 CSV

逐行读取 CSV 可保持内存使用量低,这对大型文件至关重要。

Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);

步骤 2:初始化 Aspose.HTML Cloud Client

创建一个带有您凭据的客户端实例。客户端类在 API 参考 中有文档说明。

HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

步骤 3:将 CSV 内容转换为 XLSX

SDK 接受 CSV 数据作为字符串,并返回二进制 XLSX 流。

String csvContent = String.join("\n", csvLines);
ConvertDocumentRequest request = new ConvertDocumentRequest()
        .outputFormat("xlsx")
        .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);

步骤 4:保存生成的 XLSX 文件

将返回的字节数组写入磁盘上的文件。

Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);

步骤 5:验证转换(可选)

您可以使用 Apache POI 或任何电子表格查看器快速打开生成的文件,以确保数据格式正确。

完整代码示例:使用 Aspose.HTML Cloud SDK 将 CSV 转换为 XLSX

以下程序将所有步骤汇总到一个可运行的类中。

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

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新文件路径(input.csvoutput.xlsx),验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 调用 Aspose.HTML Cloud 生成 XLSX

相同的转换可以通过 REST API 执行。以下是所需的 cURL 命令。

  1. 进行身份验证并获取访问令牌
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"

响应中包含一个 access_token,您将在后续调用中使用它。

  1. 上传 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"
  1. 执行转换
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
  1. 下载 XLSX 文件 (如果您选择了不同的输出位置)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

如需完整的参数列表,请参阅官方 API 文档

大型 CSV 转 XLSX 转换的性能考虑

  • 流式处理 CSV 输入 - 使用 Files.lines 或缓冲读取器一次处理一行,而不是将整个文件加载到内存中。
  • 批量上传 - 当处理大于 100 MB 的文件时,将 CSV 拆分为更小的块,分别转换每个块,然后在需要时合并生成的 XLSX 部分。
  • 启用异步转换 - 在转换请求中追加查询参数 async=true,让云服务在后台处理文件,减少客户端等待时间。
  • 调整输出设置 - 如果不需要精确的 cell 样式,将 preserveFormatting 标志设置为 false;这会减小负载大小并加快转换速度。

结论

本指南演示了如何在 Java 中使用 Aspose.HTML Cloud SDK for Java 执行 CSV 到 XLSX 的转换。您学习了如何配置 Maven、使用流读取 CSV 数据、调用云 API 并高效处理大文件。请记住,生产环境需要商业许可证;您可以从 临时许可证页面 获取临时许可证,并在产品页面查看完整的定价选项。拥有这些工具,您可以在任何 Java 应用程序中集成无缝的 CSV‑to‑XLSX 功能。

常见问题

  • 处理包含在引号字段内的逗号的 CSV 文件的最佳方法是什么?
    在将数据传递给转换 API 之前,使用强大的 CSV 解析器,例如 Apache Commons CSV。该解析器遵循引号分隔符,确保准确提取行。

  • Aspose.HTML Cloud SDK 是否支持在没有中间 HTML 步骤的情况下直接输出 XLSX?
    是的。convertDocument 方法可以接受原始 CSV 内容并直接生成 XLSX 文件,如代码示例所示。

  • 我可以在本地运行转换而不使用云吗?
    Aspose.HTML Cloud SDK 是基于云的服务,因此需要互联网连接和有效的凭据。对于本地部署场景,考虑使用 Aspose.Cells,它是一个独立的产品。

  • 如何监控异步转换请求的状态?
    当使用 async=true 时,API 会返回作业 ID。轮询 /jobs/{jobId} 端点以检查状态,作业完成后下载结果。

阅读更多