在日常数据处理工作中,Excel 和 CSV 是两种非常常见的表格文件格式。
有时我们需要将 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 格式,例如
Version2007
、Version2010
、Version2016
。
四、注意事项
- 1. 编码问题
- • 如果 CSV 文件使用 UTF-8 编码并包含中文,请确保项目和文件编码一致,避免出现乱码。
- 2. 数据格式
- • CSV 是纯文本,不包含公式、样式等信息,转换为 Excel 后这些信息也不会自动补全。
- 3. 多工作表情况
- • Excel 转 CSV 时,每个 CSV 文件只能对应一个工作表。如果需要导出多个工作表,可循环遍历。
五、总结
通过 Spire.XLS for Java,我们可以非常方便地在 Excel 和 CSV 之间进行互相转换:
- • Excel → CSV:适合将数据导出到纯文本格式,方便导入数据库或跨平台传输。
- • CSV → Excel:适合将纯数据导入到 Excel 中进行可视化和格式化。
这种方式代码简洁、易于维护,非常适合在 Java 应用中集成使用。