如何在 Java 中将 Excel 和 CSV 文档转换为 HTML

在为日常报告演示和报告共享方案组织、构建和格式化数据时,Excel 无疑是全球首选的电子表格解决方案。这是有充分理由的 - Excel 的广泛且无休止的更新功能非常适合我们大多数手动数据操作需求,使我们能够快速生成带有流畅图表和其他形式的视觉效果的时尚行和列。open-XML .XLSX 格式还可以很好地转换为 CSV 等纯文本格式,从而使导出和上传 Excel 的表格数据到更广泛的兼容应用程序变得同样简单。尽管它具有无数的功能和格式转换的流畅性;但是,当我们希望与尽可能广泛的受众共享 Excel 报告内容时,文档兼容性问题始终潜伏着。

当然,我们不必走得太远就能找到一个全球性的、标准化的解决方案来应对这一长期存在的挑战。在涉及完全格式化和完成的数据报告时,PDF 是理想的导出格式,这在很大程度上是由于其通用兼容性和安全设计。转换为 PDF 格式的 Excel 和 CSV 文档可以在任何浏览器上查看,并且这些 PDF 可以根据文档创建者的个人喜好形成为矢量或光栅文件。

只有当我们扩展文档转换标准以包括普遍兼容的格式时,PDF 转换的局限性才会变得明显,这些格式也适合继续文档的设计。转换为矢量 PDF 文件的文档只能返回到其原始格式(或使用 OCR 转换时只能返回到文本格式),而 PDF 中根本缺乏任何有意义的编辑/格式化功能,使得该格式成为正在进行的设计迭代的死胡同。

这就是 HTML 转换提供独特而令人兴奋的解决方案的地方。HTML 不仅具有普遍可访问性(与世界上每个平台和浏览器兼容),而且还具有极强的动态性,允许包含带有 CSS 的大量视觉自定义和与 JavaScript 的交互功能。转换为 HTML 的表格数据可以使用流行的、最新的和记录极其详细的标记元素进行重新格式化和迭代。

示范
在本文的其余部分,我将演示两个免费的 API 解决方案,其中包含可用于将 Excel 和 CSV 文档转换为 HTML 格式的现成 Java 代码示例。两者都允许表单数据输入,因此您可以通过环境中的绝对或相对文件路径轻松转换文档。这些解决方案都将返回包含转换后的文档内容的简单 HTML 文本字符串,从而可以直接创建和共享可访问的 HTML 文件,并在生成的 HTML 代码中进一步自定义数据可视化效果。

要利用任一 API,请先安装 Java SDK。首先,在 pom.xml 中添加对存储库的引用:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

然后添加对 pom.xml依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v4.25</version>
</dependency>
</dependencies>

安装完成后,您可以开始构建文档转换请求。要将 Excel (XLSX) 电子表格转换为 HTML 格式,请从以下代码示例中复制并粘贴:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDocumentXlsxToHtml(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDocumentApi#convertDocumentXlsxToHtml");
    e.printStackTrace();
}

要改为从 CSV 文件转换,请复制并粘贴以下代码:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
    byte[] result = apiInstance.convertDocumentCsvToHtml(inputFile);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDocumentApi#convertDocumentCsvToHtml");
    e.printStackTrace();
}

如上所述,每个请求都会将您的文档作为一串纯文本 HTML 代码返回 - 就这么简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值