使用Java将CSV文件转换为格式化的Excel文件

 更新时间:2025年12月09日 09:55:05   作者:大丸子  
在日常的数据处理和报表生成工作中,CSV 格式因其简洁性而被广泛采用,但在展示数据时,CSV 文件往往缺乏格式和结构化样式,不利于阅读与分析,所以本文将介绍如何使用 Java 将 CSV 文件转换为 Excel 文件,需要的朋友可以参考下

引言

在日常的数据处理和报表生成工作中,CSV 格式因其简洁性而被广泛采用。但在展示数据时,CSV 文件往往缺乏格式和结构化样式,不利于阅读与分析。相比之下,Excel 格式(如 .xlsx)不仅支持丰富的样式设置,还可直接用于报表分发和打印。

本文将介绍如何使用 Java 将 CSV 文件转换为 Excel 文件,并根据需求添加样式优化,让输出结果更美观、更专业。

  • 将 CSV 转换为 Excel(.xlsx)
  • 转换并格式化Excel输出样式

安装依赖

在使用前,需要将 JAR 包引入项目。你可以在 Free Spire.XLS for Java 官方网站 下载,也可以通过 Maven 集成:

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls.free</artifactId>
    <version>5.3.0</version>
</dependency>

示例 1:快速将 CSV 转换为 Excel

如果只是将 CSV 文件转换为 .xlsx 文件,无需任何格式调整,可以使用如下简单代码实现:

import com.spire.xls.*;

public class CsvToXlsx {
    public static void main(String[] args) {
        Workbook workbook = new Workbook();
        workbook.loadFromFile("data.csv", ",");
        workbook.saveToFile("output.xlsx", ExcelVersion.Version2013);
    }
}

上述代码会将 data.csv 转换为 Excel 文件,保留原始内容结构,默认编码为 UTF-8。如果你的 CSV 使用的是其他分隔符(如分号),可以通过调整第二个参数来修改。

示例 2:转换并格式化输出样式

在实际业务中,我们往往希望输出的 Excel 更具可读性,例如将表头加粗、设置背景色、为数字列添加格式等。下面的示例展示了如何在转换后进行样式优化:

import com.spire.xls.*;

public class CsvToXlsx {
    public static void main(String[] args) {
        Workbook workbook = new Workbook();
        workbook.loadFromFile("data.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);
        }

        // 设置数字列格式(示例中为 B 列)
        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("formatted_output.xlsx", ExcelVersion.Version2013);
    }
}

这段代码主要完成了三项增强:

  • 表头高亮:加粗文字并设置浅黄色背景;
  • 数字列格式化:以千分位并保留两位小数方式展示;
  • 列宽自适应:根据内容长度自动调整宽度,避免文本截断。

效果对比

未格式化版本:

简单格式化后的 Excel:

并且表头具备背景色,更加清晰醒目。

总结

通过本文示例,你可以轻松地将 CSV 文件转换为 Excel 文档,并添加基本的样式和格式,提升数据的可视化效果。无论是用于内部报表、客户数据导出,还是定期自动化输出,Spire.XLS for Java 都能为你提供高效且灵活的解决方案。

以上就是使用Java将CSV文件转换为格式化的Excel文件的详细内容,更多关于Java CSV文件转换Excel的资料请关注脚本之家其它相关文章!

相关文章

  • Mybatis使用foreach批量插入Oracle提示命令未正确结束方式

    Mybatis使用foreach批量插入Oracle提示命令未正确结束方式

    文章主要讨论了在Oracle和MySQL中使用foreach标签时的语法差异,以及foreach元素的属性介绍,包括item、index、collection、open、separator和close等
    2025-11-11
  • 一文带你全面了解Java Hashtable

    一文带你全面了解Java Hashtable

    HashTable是jdk 1.0中引入的产物,基本上现在很少使用了,但是会在面试中经常被问到。本文就来带大家一起深入了解一下Hashtable,需要的可以参考一下
    2022-09-09
  • 一起聊聊Java中的自定义异常

    一起聊聊Java中的自定义异常

    在学习Java的过程中,想必大家都一定学习过异常这个篇章,异常的基本特性和使用这里就不再多讲了。本文就来和大家讲讲如何自定义异常
    2022-08-08
  • Springboot 集成 SocketIO的示例代码

    Springboot 集成 SocketIO的示例代码

    Socket.IO是实现浏览器与服务器之间实时、双向和基于事件的通信的工具库,本文主要介绍了Springboot 集成 SocketIO的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • java实现超大文件的读写功能

    java实现超大文件的读写功能

    这篇文章主要为大家详细介绍了java实现超大文件的读写功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • springboot 多环境配置 yml文件版的实现方法

    springboot 多环境配置 yml文件版的实现方法

    这篇文章主要介绍了springboot 多环境配置 yml文件版的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • mybatis批量新增、删除、查询和修改方式

    mybatis批量新增、删除、查询和修改方式

    这篇文章主要介绍了mybatis批量新增、删除、查询和修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java动态代理(jdk与cglib)详细解析

    java动态代理(jdk与cglib)详细解析

    静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了
    2013-09-09
  • 使用Java编写导出不确定行数列数数据的工具类

    使用Java编写导出不确定行数列数数据的工具类

    这篇文章主要为大家详细介绍了如何使用Java编写导出不确定行数列数数据的工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • 使用spring框架实现数据库事务处理方式

    使用spring框架实现数据库事务处理方式

    这篇文章主要介绍了使用spring框架实现数据库事务处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论