You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java FileIO处理Excel转TXT数据提取及CSV处理咨询

解决方案:Excel转TXT的分隔符选择与Java读取实现,及CSV处理建议

一、TXT文件的分隔符选择

因为supervisor name字段带空格,直接排除空格分隔符,推荐这几种稳妥选项:

  • 制表符(\t):Excel导出时直接支持,日常数据里几乎不会出现制表符,完全不会和字段内的空格冲突,是首选
  • 竖线(|):如果制表符存在意外冲突,竖线是次优选择,普通业务数据中出现概率极低
  • 自定义特殊符号:比如§、@#(先确认数据里没有这类符号),适合极端场景

二、Java读取TXT单元格的实现(基于Scanner)

既然已经能逐行读取,只需对每行按选定分隔符拆分即可,直接上代码:

示例代码(制表符分隔)

import java.io.File;
import java.util.Scanner;

public class TxtCellReader {
    public static void main(String[] args) throws Exception {
        File txtFile = new File("你的文件路径.txt");
        Scanner scanner = new Scanner(txtFile);
        
        // 先读表头(如果有)
        if (scanner.hasNextLine()) {
            String[] headers = scanner.nextLine().split("\t");
            // 按需处理表头,比如打印列名
        }
        
        // 读取数据行拆分单元格
        while (scanner.hasNextLine()) {
            String dataLine = scanner.nextLine();
            String[] cells = dataLine.split("\t"); 
            // cells数组就是每个单元格的内容,比如cells[1]就是supervisor name字段
            System.out.println("主管姓名:" + cells[1]);
        }
        scanner.close();
    }
}

注意点

  • 如果选竖线作为分隔符,split时要转义:dataLine.split("\\|")
  • 要是数据里意外出现分隔符,导出TXT时记得给该字段加引号,这种情况别直接用split,可以参考下文CSV的库来处理

三、CSV文件的处理建议

CSV标准格式会用双引号包裹带空格/逗号的字段,绝对别自己用split(",")处理,很容易因为引号、换行等边界情况出错,直接用成熟第三方库:

1. OpenCSV(轻量易用)

先加Maven依赖:

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.6</version>
</dependency>

读取示例:

import com.opencsv.CSVReader;
import java.io.FileReader;

public class CsvCellReader {
    public static void main(String[] args) throws Exception {
        CSVReader reader = new CSVReader(new FileReader("你的文件.csv"));
        String[] line;
        
        // 读表头
        line = reader.readNext();
        // 读数据行
        while ((line = reader.readNext()) != null) {
            String supervisorName = line[1];
            System.out.println("主管姓名:" + supervisorName);
        }
        reader.close();
    }
}

2. Apache Commons CSV(功能更全)

Maven依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.10.0</version>
</dependency>

读取示例(支持按表头名取数据,更直观):

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.Reader;

public class CommonsCsvReader {
    public static void main(String[] args) throws Exception {
        Reader reader = new FileReader("你的文件.csv");
        // 自动识别表头,后续可以用表头名取数据
        CSVParser parser = CSVFormat.DEFAULT.withHeader().parse(reader);
        for (CSVRecord record : parser) {
            String supervisorName = record.get("Supervisor Name");
            System.out.println("主管姓名:" + supervisorName);
        }
        parser.close();
        reader.close();
    }
}

内容的提问来源于stack exchange,提问作者T.J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:42:35