半岛外围网上直营

国产化Excel处理组件Spire.XLS教程:使用 Java 将 CSV 转换为 Excel

翻译|使用教程|编辑:吉炜炜|2025-07-29 11:59:04.027|阅读 115 次

概述:将 CSV 文件转换为 Excel 是 Java 开发者在进行数据报表、分析流程或文件转换时常见的操作。虽然可以手动解析 CSV 文件,但这种方式不仅代码繁琐,而且格式控制能力有限。借助如 Spire.XLS for Java 这样的专业 Excel 库,可以极大简化处理流程,同时实现对布局、样式、模板以及数据整合的全面控制。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

将 CSV 文件转换为 Excel 是 Java 开发者在进行数据报表、分析流程或文件转换时常见的操作。虽然可以手动解析 CSV 文件,但这种方式不仅代码繁琐,而且格式控制能力有限。借助如 Spire.XLS for Java 这样的专业 Excel 库,可以极大简化处理流程,同时实现对布局、样式、模板以及数据整合的全面控制。

E-iceblue旗下Spire系列产品,是文档处理领域的佼佼者,支持国产化信创本文将带你逐步了解多种使用场景,介绍如何借助 Spire.XLS for Java 使用 Java 将 CSV 转换为 Excel,包括基本的导入导出、样式设置、注入模板数据、以及将多个 CSV 文件合并为一个 Excel 工作簿等内容。

Spire.XLS for Java免费试用下载 

加入Spire技术交流QQ群(125237868),与更多开发者一起提升文档开发技能。

在 Java 项目中配置 Spire.XLS

在进行 CSV 到 Excel 的转换前,需要将 Spire.XLS for Java 引入到项目中。该库支持 .xls 与 .xlsx 文件格式,并提供简洁的 API,无需安装 Microsoft Office 即可创建和操作 Excel 文档。

通过 Maven 引入

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>//repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>15.7.7</version>
    </dependency>
</dependencies>

手动引入 JAR 包

你也可以下载 Spire.XLS for Java,并手动将 JAR 文件添加到项目的类路径中。

使用 Java 将 CSV 文件转换为 Excel

最基本的使用场景是将一个 .csv 文件转换为 .xlsx 或 .xls 格式。使用 Spire.XLS,只需两步即可完成:使用 loadFromFile() 加载 CSV,使用 saveToFile() 保存为 Excel 文件。

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

若要输出为&nbsp;.xls 格式,只需将版本参数改为 ExcelVersion.Version97to2003。

以下是转换结果示意图:

此外,你还可以自定义分隔符,或设置起始的行和列位置,非常适合已有标题或固定布局的场景:

workbook.loadFromFile("data_semicolon.csv", ";", 3, 2);

使用 Java 设置 Excel 输出格式

在生成用于报表或客户展示的 Excel 文件时,设置样式能显著提升可读性与专业感。Spire.XLS 支持通过 CellStyle 类自定义字体、颜色、数字格式等,并支持自动调整列宽。

示例:设置样式并自动调整列宽

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.getFont().setSize(14f);
        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);

        // 统一设置字体自动调整列宽
        sheet.getRange().getStyle().getFont().setFontName("微软雅黑");
        for (int i = 1; i <= sheet.getLastRow(); i++) {
            sheet.autoFitColumn(i);
        }

        workbook.saveToFile("formatted_output.xlsx", ExcelVersion.Version2013);
    }
}
以下是带有格式的 Excel 输出示例:

如果你想将数据导入到预设的 Excel 模板中,只需加载现有 .xlsx 文件,并使用如 。请注意,模板格式不会自动应用,仍需手动设置样式。 

将多个 CSV 文件合并为一个 Excel 文件

当处理批量数据或多个来源的数据时,通常需要将多个 CSV 文件合并为一个 Excel 文件。Spire.XLS 支持以下两种方式:

  • 每个 CSV 文件导入到独立的工作表;
  • 所有 CSV 数据整合到同一个工作表中。

方式一:每个 CSV 单独作为工作表

import com.spire.xls.*;
import java.io.File;

public class CsvToXlsx {
    public static void main(String[] args) {
        File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv"));
        Workbook workbook = new Workbook();
        workbook.getWorksheets().clear();

        for (File csv : csvFiles) {
            Workbook temp = new Workbook();
            temp.loadFromFile(csv.getAbsolutePath(), ",");
            workbook.getWorksheets().addCopy(temp.getWorksheets().get(0));
        }

        workbook.saveToFile("merged.xlsx", ExcelVersion.Version2016);
    }
}
下图展示了多个工作表组成的 Excel 文件:


方式二:将所有数据合并到同一个工作表中

import com.spire.xls.*;
import java.io.File;

public class CsvToXlsx {
    public static void main(String[] args) {
        File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv"));
        Workbook workbook = new Workbook();
        workbook.getWorksheets().clear();
        Worksheet sheet = workbook.getWorksheets().add("Sample");

        int startRow = 1;
        boolean isFirstFile = true;

        for (File csv : csvFiles) {
            Workbook temp = new Workbook();
            temp.loadFromFile(csv.getAbsolutePath(), ",");
            Worksheet tempSheet = temp.getWorksheets().get(0);

            int startReadRow = isFirstFile ? 1 : 2;
            isFirstFile = false;

            for (int r = startReadRow; r <= tempSheet.getLastRow(); r++) {
                for (int c = 1; c <= tempSheet.getLastColumn(); c++) {
                    sheet.getCellRange(startRow, c).setValue(tempSheet.getCellRange(r, c).getText());
                }
                startRow++;
            }
        }

        workbook.saveToFile("merged_single_sheet.xlsx", ExcelVersion.Version2016);
    }
}

以下是合并结果的截图:


故障排查建议

错误及解决方法:

  • Excel 内容乱码?

请确保 CSV 文件采用 UTF-8 编码。

  • 列错位或对齐不正确?

检查使用的分隔符是否一致。

  • CSV 文件过大?

考虑将其拆分为多个工作表,提高处理效率。

  • 合并的文件结构不同?

先统一字段结构或列标题,再执行合并操作。

常见问题解答

如何在 Java 中将 CSV 文件转换为 XLSX 格式?

使用 Workbook.loadFromFile("file.csv", ",") 加载 CSV 文件,然后使用 saveToFile("output.xlsx", ExcelVersion.Version2016) 保存为 .xlsx&nbsp;文件。

可以设置 Excel 输出的样式吗?

可以。通过&nbsp;CellStyle 类可设置字体、颜色、对齐方式、数字格式等。

可以将 CSV 数据插入到 Excel 模板中吗?

完全可以。加载 .xlsx 模板文件后,通过 setText() 或 insertDataTable() 方法注入数据。

如何将多个 CSV 文件合并为一个 Excel 文件?

可以选择每个 CSV 为一个工作表,或将它们逐行追加合并到一个工作表中。  

————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询 ;技术交流Q群(125237868


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP
利记足球官网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 真人boyu·博鱼滚球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 最大网上PM娱乐城盘口(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 正规雷火竞技官方买球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 雷火竞技权威十大网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) boyu·博鱼信誉足球官网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 权威188BET足球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 正规188BET足球大全(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新)