在日常数据处理工作中,ExcelCSV 是两种非常常见的表格文件格式。
有时我们需要将 Excel 文件转换为 CSV 以便导入数据库,也有时需要将 CSV 数据转成 Excel 以便美观地查看。

本文将介绍如何使用 Spire.XLS for Java 来实现这两种转换。


一、准备工作

在 Java 项目中引入 Spire.XLS for Java 的 JAR 包。
如果是 Maven 项目,可以在 pom.xml 中添加依赖(假设本地已配置仓库)。
非 Maven 项目则将 spire.xls.jar 放到 lib 目录,并添加到构建路径。


二、Excel 转 CSV

假设我们有一个 Excel 文件 example.xlsx,需要将其中的第一个工作表导出为 CSV 格式。

import com.spire.xls.*;public class ExcelToCsv {public static void main(String[] args) {// 加载 Excel 文件Workbook workbook = new Workbook();workbook.loadFromFile("example.xlsx");// 获取第一个工作表Worksheet sheet = workbook.getWorksheets().get(0);// 保存为 CSV 格式sheet.saveToFile("output.csv", ",", FileFormat.CSV);}
}

说明:

  • saveToFile("output.csv", ",", FileFormat.CSV) 中的第二个参数是分隔符,这里使用英文逗号。
  • • 该方法会保留工作表中的所有数据,方便后续处理。

三、CSV 转 Excel

假设我们有一个 CSV 文件 data.csv,需要将其转换成 Excel 文件。

import com.spire.xls.*;public class CsvToExcel {public static void main(String[] args) {// 创建 WorkbookWorkbook workbook = new Workbook();// 加载 CSV 文件(设置分隔符为英文逗号)workbook.loadFromFile("data.csv", ",", 1, 1);// 保存为 Excel 格式workbook.saveToFile("output.xlsx", ExcelVersion.Version2016);}
}

说明:

  • loadFromFile("data.csv", ",", 1, 1) 用于加载 CSV 文件。
  • • 第二个参数 "," 表示 CSV 的分隔符。
  • • 第三个、第四个参数分别表示起始行列索引(1-based)。
  • • 保存时可以选择不同版本的 Excel 格式,例如 Version2007Version2010Version2016

四、注意事项

  1. 1. 编码问题
  • • 如果 CSV 文件使用 UTF-8 编码并包含中文,请确保项目和文件编码一致,避免出现乱码。
  1. 2. 数据格式
  • • CSV 是纯文本,不包含公式、样式等信息,转换为 Excel 后这些信息也不会自动补全。
  1. 3. 多工作表情况
  • • Excel 转 CSV 时,每个 CSV 文件只能对应一个工作表。如果需要导出多个工作表,可循环遍历。

五、总结

通过 Spire.XLS for Java,我们可以非常方便地在 Excel 和 CSV 之间进行互相转换:

  • Excel → CSV:适合将数据导出到纯文本格式,方便导入数据库或跨平台传输。
  • CSV → Excel:适合将纯数据导入到 Excel 中进行可视化和格式化。

这种方式代码简洁、易于维护,非常适合在 Java 应用中集成使用。