Java高效实现CSV转Excel的三种方法详解

 更新时间:2026年02月07日 08:21:41   作者:用户372157426135  
​在日常开发工作中,CSV 文件作为一种简单、轻便的数据存储格式,常被用于数据交换和存储,本篇文章将分享几种基于 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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot与Spring MVC Spring对比及核心概念

    Spring Boot与Spring MVC Spring对比及核心概念

    这篇文章主要为大家介绍了Spring Boot与Spring MVC Spring的对比以及你需要了解的核心概念,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • MyBatis-plus处理存储json数据过程

    MyBatis-plus处理存储json数据过程

    文章介绍MyBatis-Plus 3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承FastjsonTypeHandler并重写parse方法,同时需明确指定类类型及XML中的resultMap以解决转换问题
    2025-08-08
  • Java数据结构之选择排序算法的实现与优化

    Java数据结构之选择排序算法的实现与优化

    选择排序:(Selection sort)是一种简单直观的排序算法,也是一种不稳定的排序方法。本文主要为大家介绍一下选择排序的实现与优化,希望对大家有所帮助
    2023-01-01
  • 如何用Java 几分钟处理完 30 亿个数据(项目难题)

    如何用Java 几分钟处理完 30 亿个数据(项目难题)

    现有一个 10G 文件的数据,里面包含了 18-70 之间的整数,分别表示 18-70 岁的人群数量统计,今天小编通过本文给大家讲解如何用Java 几分钟处理完 30 亿个数据,这个问题一直以来是项目难题,今天通过本文给大家详细介绍下,感兴趣的朋友一起看看吧
    2022-07-07
  • JAVA基于Slack实现异常日志报警详解

    JAVA基于Slack实现异常日志报警详解

    这篇文章主要为大家介绍了JAVA基于Slack实现异常日志报警详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • java简单读取properties配置文件的方法示例

    java简单读取properties配置文件的方法示例

    这篇文章主要介绍了java简单读取properties配置文件的方法,涉及java针对properties配置的载入及文件属性读取相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • SpringBoot MockMvc单元测试的示例代码

    SpringBoot MockMvc单元测试的示例代码

    这篇文章主要介绍了SpringBoot MockMvc单元测试的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • SpringBoot开发实战系列之动态定时任务

    SpringBoot开发实战系列之动态定时任务

    在我们日常的开发中,很多时候,定时任务都不是写死的,而是写到数据库中,从而实现定时任务的动态配置,下面这篇文章主要给大家介绍了关于SpringBoot开发实战系列之动态定时任务的相关资料,需要的朋友可以参考下
    2021-08-08
  • SpringCloud高可用配置中心Config详解

    SpringCloud高可用配置中心Config详解

    Spring Cloud Config 是一个解决分布式系统的配置管理方案,它包含了 server 和 client 两个部分,这篇文章主要介绍了SpringCloud之配置中心Config(高可用),需要的朋友可以参考下
    2022-04-04
  • JEE与Spring Boot代码性能比较分析

    JEE与Spring Boot代码性能比较分析

    JavaEE与Spring Boot其实很难比较测试,前者适合单体SOA架构,后者适合微服务,但是还是有好事者把两者放在一起比较性能。这篇文章主要介绍了JEE与Spring Boot代码性能比较,需要的朋友可以参考下
    2018-11-11

最新评论