首页 关于我们 成功案例 网络营销 电商设计 新闻中心 联系方式
QQ联系
电话联系
手机联系

J*a 怎么把 Excel 转成 CSV?三行代码

发布时间:2025-12-15 17:20
发布者:网络
浏览次数:
J*a将Excel转CSV的核心逻辑可压缩为三行代码,但需预先配置Apache POI依赖、明确文件路径,并仅适用于单Sheet、无公式、无合并单元格的简单场景;实际项目中应封装健壮方法,尤其需自定义getCellValue()安全处理多类型单元格。

java 怎么把 excel 转成 csv?三行代码

J*a 把 Excel 转 CSV,真能三行代码搞定?严格来说——核心逻辑可以压缩到三行,但前提是已准备好依赖、文件路径明确、且只处理简单场景(比如单个 Sheet、无公式、无合并单元格)。实际项目中建议封装健壮些,但入门或临时脚本,确实可以极简实现。

前提:加好 Apache POI 依赖

用 M*en,加这一段(POI 支持 .xls 和 .xlsx):

(这不是代码行,但必不可少)
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>5.2.4</version>
</dependency>

三行核心代码(读 Excel + 写 CSV)

假设你有一个 input.xlsx,想转成 output.csv,用 XSSFWorkbook(.xlsx)为例:

Workbook wb = new XSSFWorkbook(new FileInputStream("input.xlsx"));
Sheet sheet = wb.getSheetAt(0);
try (PrintWriter pw = new PrintWriter("output.csv")) {
    for (Row row : sheet) {
        pw.println(row.stream().map(cell -> getCellValue(cell)).collect(Collectors.joining(",")));
    }
}

⚠️ 注意:上面“三行”是逻辑主干(打开、取表、遍历写),但 getCellValue() 需要自己补一个工具方法来安全取值(处理字符串/数字/日期/空单元格),否则会 NPE 或类型异常。

晓象AI资讯阅读神器 晓象AI资讯阅读神器

晓象-AI时代的资讯阅读神器

晓象AI资讯阅读神器 72 查看详情 晓象AI资讯阅读神器

关键细节不能省:安全读单元格值

Excel 单元格类型多,直接 cell.getStringCellValue() 会崩。推荐一个轻量版 getCellValue()

  • cell.getCellType() 判断类型,再调对应 getter
  • 对 NUMERIC 类型,用 DateUtil.isCellDateFormatted(cell) 区分日期和数字
  • 空单元格返回空字符串,避免 null 导致 CSV 格式错乱

小提醒:CSV 不是万能“平替”

转完可能发现:

  • 中文乱码?→ 用 new PrintWriter(file, "UTF-8")
  • 数字变科学计数法?→ 读 numeric 时用 cell.getNumericCellValue() 后格式化为字符串
  • 带逗号/换行的单元格没加引号?→ CSV 标准要求双引号包裹,需手动处理(如 Apache Commons CSV 库更省心)

基本上就这些。真要一行命令跑通,用 Python pandas 或命令行工具(如 in2csv)更顺;但在 J*a 项目里嵌入转换逻辑,POI 这套写法清晰可控,不复杂但容易忽略细节。

以上就是J*a 怎么把 Excel 转成 CSV?三行代码的详细内容,更多请关注其它相关文章!


# excel  # python  # java  # apache  # 工具  # 中文乱码  # csv  # stream  # 单元格  # 管理系统  # 转成  # 如何实现  # 统计报表  # 怎么做  # 遍历  # 但在  # 适用于  # 你有  # 铁岭seo查询  # 河北营销推广企业  # 武陟县营销推广员招聘网  # 网站优化seo运营策略  # 营销推广课程哪家做得好  # 订票网站建设银行app  # 宿州网站建设选哪家  # 对网站优化的感悟  # 化妆品推广营销主题  # 湖北抖音seo排名厂家