当前位置: 首页 > news >正文

使用 Java 将 Excel 工作表转换为 CSV 格式

在日常开发中,Excel 文件(.xls/.xlsx)是数据存储和交换的常用格式,但在数据导入、批量处理等场景下,轻量且纯文本的 CSV 格式更具优势。本文将介绍如何使用 Spire.XLS for Java 组件,高效实现 Excel 文件到 CSV 格式的转换,涵盖环境准备、核心步骤、完整代码及关键说明,帮助开发者快速落地相关需求。


引入依赖(Maven方式)

在项目的pom.xml文件中添加Spire.XLS的依赖配置(查询最新版本):

<repositories><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https://repo.e-iceblue.com/nexus/content/groups/public/</url></repository>
</repositories>
<dependency><groupId>e-iceblue</groupId><artifactId>spire.xls</artifactId><version>15.10.5</version>
</dependency>

Spire.XLS for Java兼容Excel 97-2021的所有版本格式。其API设计简洁,封装了复杂的Excel底层逻辑,代码简单易懂。

免费版 (需注意有限制)


Excel 转 CSV 核心实现步骤

Excel转CSV的核心逻辑是:加载Excel文件 → 定位目标工作表 → 调用转换API保存为CSV格式。以下分 “单工作表转换” 和 “多工作表批量转换” 两种场景展开。

场景1:单个工作表转换为CSV

适用于仅需提取Excel中某一个工作表(如第一个工作表)数据的场景,代码如下:

import com.spire.xls.*;
import java.nio.charset.Charset;public class ExcelToCsvSingleSheet {public static void main(String[] args) {// 创建Workbook对象,加载Excel文件Workbook workbook = new Workbook();workbook.loadFromFile("E:\\PythonExcel\\产品.xlsx");// 获取目标工作表(索引从0开始,0表示第一个工作表)Worksheet worksheet = workbook.getWorksheets().get(0);// (可选)若已知工作表名称,可通过名称获取:workbook.getWorksheets().get("Sheet1")// 将工作表保存为CSV格式,指定输出路径、分隔符和编码(UTF-8避免中文乱码)worksheet.saveToFile("single_sheet.csv", ",", Charset.forName("UTF-8"));// 释放资源workbook.dispose();}
}
代码说明
  • 加载Excel文件Workbook是Spire.XLS的核心类,负责Excel文件的整体管理,loadFromFile()方法支持加载.xls和.xlsx格式;
  • 获取工作表:通过索引(get(0))或名称(get("Sheet1"))定位工作表,需确保索引不越界(若Excel只有1个工作表,索引最大为0);
  • 保存为CSVsaveToFile()的第三个参数指定编码(推荐UTF-8,避免中文乱码),若不指定编码,默认使用系统编码(可能导致乱码)。

CSV 输出文件:
在这里插入图片描述

场景2:多工作表批量转换为CSV

若Excel文件包含多个工作表,需将每个工作表单独转为CSV(如Sheet1.csvSheet2.csv),可通过遍历工作表实现批量转换:

import com.spire.xls.*;
import java.nio.charset.Charset;public class ExcelToCsvMultiSheets {public static void main(String[] args) {// 加载Excel文件Workbook workbook = new Workbook();workbook.loadFromFile("E:\\PythonExcel\\数据表.xlsx");// 遍历所有工作表for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {Worksheet worksheet = workbook.getWorksheets().get(i);// 获取工作表名称,作为CSV文件名的一部分String sheetName = worksheet.getName();// 定义CSV输出路径String csvOutputPath = "Output/" + sheetName + ".csv";// 保存为CSVworksheet.saveToFile(csvOutputPath,",", Charset.forName("UTF-8"));}// 释放资源workbook.dispose();}
}

自定义CSV分隔符:部分场景需用分号(;)或制表符(\t)作为 CSV 分隔符,可通过saveToFile()的第二个参数指定


关键注意事项

  1. 编码问题:CSV 文件的编码需与后续使用场景匹配(如导入数据库时需与数据库编码一致)。若出现中文乱码,优先尝试UTF-8编码;
  2. 数据格式保留:转换为 CSV 后,会以 Excel 中“显示值”保存(如 “12.34%” 会转为 “12.34%”,而非原始数值0.1234);
  3. 空值与空白行:Spire.XLS 会保留 Excel 中的空单元格(CSV 中以 “,” 分隔空值),但会自动过滤工作表末尾的空白行(无数据的行);

Spire.XLS for Java 为 Excel 到 CSV 的转换提供了简洁、高效的解决方案,开发者无需关注 Excel 底层解析细节,仅通过少量 API 即可完成转换需求。在实际使用中,需注意编码匹配、数据格式保留等问题。

若需进一步扩展功能(如转换前筛选数据),可参考中文教程集,其提供了丰富的示例,覆盖更多Excel处理场景。

http://www.dtcms.com/a/544790.html

相关文章:

  • Kotlin基础类型扩展函数使用指南
  • 城市建设网站做印刷品去哪个网站
  • 怎么查网站到期时间php网站搭建环境
  • 汽车行业SCRM:企业微信+服务商模式破解汽车服务行业痛点的案例分析
  • 【第五章:计算机视觉-项目实战之推荐/广告系统】3.精排算法-(4)重排算法:MMR、DPP原理精讲
  • Xamarin.Forms菜鸟笔记--10.获取点击/滑动 Image位置
  • 网络环路“侦探”指南:如何快速定位与根除网络风暴
  • Android 自定义Switch
  • HBuilder 上架 iOS 应用全流程指南:从云打包到开心上架(Appuploader)上传的跨平台发布实践
  • PHP基础知识
  • Obsidian 入门教程
  • 响应式购物网站模板广州网站优化电话
  • 中山 网站建设 骏域做ag视频大全网站
  • Vue二进制数据渲染成图片
  • 未来智能网联汽车的网络安全档案建立方法
  • 防止表单重复提交功能简单实现
  • 网络安全等级保护测评高风险判定实施指引(试行)--2020与2025版对比
  • Squid 可观测性最佳实践
  • 【深度学习新浪潮】DeepSeek-OCR深度解析:视觉-文本压缩驱动的新一代OCR技术革命
  • 官方网站建设投标书网站建设包含哪些
  • 相应式手机网站建设网站建设专员一定要会网站建设吗
  • 手机云台ESD整改案例-阿赛姆电子
  • 拆解ASP.NET MVC 核心优势:松耦合、易测试、SEO 友好、RESTful 实战指南
  • 远期合约和期权合约的区别是什么?
  • 2025年国内数字化档案管理软件选型速览
  • 基于FPGA的雷达信号处理设计工具包分享
  • 基于MATLAB的多机器人编队控制系统设计与实现
  • 网站建设计划表模板西安的网站设计单位
  • linux Debian 12 安装 Docker(手动)
  • 天津网站建设培训wordpress网页如何公开