Java高效实现CSV转Excel的三种方法详解
在日常开发工作中,CSV 文件作为一种简单、轻便的数据存储格式,常被用于数据交换和存储。但当需要对数据进行分析、生成报表,或者将数据分享给其他人时,Excel 格式往往更具优势。它不仅易于操作,还支持更多的格式化选项,适合做进一步的数据处理和展示。
本篇文章将分享几种基于 Java 的 CSV 转 Excel 方法,帮助你在开发中更高效地实现这种常见的数据转换操作。
安装依赖
在开始编写代码之前,你需要引入相关的 Java 库。我们将使用一个常见的 Spire.XLS 库来实现 CSV 转 Excel 操作。以下是 Maven 配置示例:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>15.10.5</version>
</dependency>
</dependencies>
添加这个依赖后,你就可以开始使用相应的 API 来操作 Excel 文件了。
示例一:简单的 CSV 转 Excel
对于许多场景,简单地将 CSV 文件转换成 Excel 就能满足需求。这里,我们展示了一个基础的实现方法,只需几行代码就能完成任务。
import com.spire.xls.*;
public class CsvToXlsx {
public static void main(String[] args) {
Workbook workbook = new Workbook();
workbook.loadFromFile("数据.csv", ","); // 加载CSV文件
workbook.saveToFile("输出.xlsx", ExcelVersion.Version2013); // 保存为Excel文件
}
}
代码解析
workbook.loadFromFile("数据.csv", ",");:加载 CSV 文件,指定逗号为分隔符。workbook.saveToFile("输出.xlsx", ExcelVersion.Version2013);:将数据保存为 Excel 格式。
这种方法适用于那些只需要快速转换文件格式的场景,不涉及复杂的格式化需求。
示例二:格式化 Excel 文件
如果你希望在转换过程中对 Excel 文件进行格式化操作,比如设置表头样式或调整列宽等,以下示例可以提供一个更完整的解决方案。
import com.spire.xls.*;
public class CsvToXlsx {
public static void main(String[] args) {
Workbook workbook = new Workbook();
workbook.loadFromFile("数据.csv", ","); // 加载CSV文件
Worksheet sheet = workbook.getWorksheets().get(0);
// 格式化表头
CellStyle headerStyle = workbook.getStyles().addStyle("Header");
headerStyle.getFont().isBold(true);
headerStyle.setKnownColor(ExcelColors.LightYellow);
for (int col = 1; col <= sheet.getLastColumn(); col++) {
sheet.getCellRange(1, col).setStyle(headerStyle); // 设置表头样式
}
// 格式化数字列
CellStyle numStyle = workbook.getStyles().addStyle("Numbers");
numStyle.setNumberFormat("#,##0.00");
sheet.getCellRange("B2:B100").setStyle(numStyle); // 设置数字格式
// 自动调整列宽
for (int i = 1; i <= sheet.getLastRow(); i++) {
sheet.autoFitColumn(i); // 自动调整列宽
}
workbook.saveToFile("格式化输出.xlsx", ExcelVersion.Version2013); // 保存为Excel文件
}
}
代码解析
- 格式化表头 :通过设置表头的字体加粗并改变背景色,使其更加突出。
- 数字列格式化 :为数字列指定了特定的格式,例如带千分位和两位小数。
- 自动调整列宽 :自动调整列宽,使得数据在 Excel 中能够合理显示,不会出现列过窄的情况。
这种方法适合需要进一步美化数据和确保数据展示效果的场景。
示例三:批量处理多个 CSV 文件
有时候,我们需要将多个 CSV 文件合并为一个 Excel 文件。这种需求在处理大量数据时尤其常见。以下示例展示了如何批量处理多个 CSV 文件,并将它们合并到一个 Excel 文件中。
import com.spire.xls.*;
import java.io.File;
public class CsvToXlsx {
public static void main(String[] args) {
// 获取 CSV 文件夹中的所有文件
File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv"));
// 创建一个新的工作簿,并清空所有工作表
Workbook workbook = new Workbook();
workbook.getWorksheets().clear();
for (File csv : csvFiles) {
// 加载 CSV 文件
Workbook temp = new Workbook();
temp.loadFromFile(csv.getAbsolutePath(), ",");
// 将 CSV 文件添加到工作簿的一个工作表中
workbook.getWorksheets().addCopy(temp.getWorksheets().get(0));
}
// 保存合并后的 Excel 文件
workbook.saveToFile("合并输出.xlsx", ExcelVersion.Version2016);
}
}
代码解析
- 批量处理 CSV 文件 :通过获取指定文件夹下所有 CSV 文件,并逐个加载它们。
- 合并工作表 :将每个 CSV 文件的内容作为新的工作表添加到同一个工作簿中。
- 保存合并结果 :最终,将所有 CSV 文件合并后的 Excel 文件保存为一个新的文件。
这种方法非常适合需要处理多个 CSV 文件并将它们合并为一个 Excel 文件的场景。
总结
通过以上几个示例,我们展示了如何在 Java 中高效地将 CSV 文件转换为 Excel 文件。从简单的转换到格式化操作,再到批量处理多个文件,所有这些操作都可以轻松完成。根据不同的需求,你可以选择最适合的实现方式。
到此这篇关于Java高效实现CSV转Excel的三种方法详解的文章就介绍到这了,更多相关Java CSV转Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java中实现Comparable和Comparator对象比较
这篇文章主要针对Java中Comparable和Comparator对象进行比较,感兴趣的小伙伴们可以参考一下2016-02-02
SpringBoot手写RestTemplate拦截器链,掌控HTTP请求实践
本文介绍了在Spring项目中使用RestTemplate时遇到的问题及解决方案,通过自定义拦截器链来实现请求的统一处理,包括添加认证Token、记录请求日志、设置超时时间、实现失败重试等,关键点在于拦截器链的顺序和响应流的处理,以及确保拦截器的线程安全2025-12-12
SpringBoot中的@Conditional 注解的使用
@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean,本文主要介绍了SpringBoot中的@Conditional 注解的使用2024-01-01
浅谈DetachedCriteria和Criteria的使用方法(必看)
下面小编就为大家带来一篇浅谈DetachedCriteria和Criteria的使用方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05


最新评论