java 读取csv文件里指定行列的值,比如读取第三行第二列的值。

2024-11-20 02:52:12
推荐回答(2个)
回答1:

  java读取csv文件,按照指定格式:
  import java.io.IOException;
  import java.nio.charset.Charset;
  import java.util.ArrayList;
  import com.csvreader.CsvReader;
  import com.csvreader.CsvWriter;
  /**
  * 读取CSV文件
  * 所谓"CSV",是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。
  * 可以看成数据库程序与电子表格之间一种中间通信文件,数据库可以导出。csv格式,excel也可以导入并打开。csv文件,例子如下
  * sj_mino1001.jpg,715282,4FB55FE8,
  * sj_mino1002.jpg,471289,93203C5C,
  * sj_mino1003.jpg,451929,C4E80467,
  *
  */
  public class CSVDeal{
  public static void main(String[] args) {
  try {
  String[] stringList;
  String csvFilePath = "C:\\Users\\Administrator\\Desktop\\20140227135936.csv";
  String sourceFileString= "C:\\Users\\Administrator\\Desktop\\test.csv";
  CsvReader reader = new CsvReader(csvFilePath); //默认是逗号分隔符,UTF-8编码
  CsvWriter writer = new CsvWriter(sourceFileString);
  /*
  * readRecord()判断是否还有记录,getValues()读取当前记录,然后指针下移
  */
  reader.readRecord();
  writer.writeRecord(reader.getValues()); //读取表头
  /*
  * 逐行读取,以免文件太大
  * 处理表头后面的数据,这里是在第12列数据统一加前缀"V"
  */
  while(reader.readRecord()){
  stringList = reader.getValues();
  stringList[11] = 'V' + stringList[11];
  writer.writeRecord(stringList);
  }
  reader.close();
  writer.close();
  }catch(Exception ex){
  System.out.println(ex);
  }
  }
  }

回答2:

import java.io.BufferedReader;
import java.io.FileReader;
public class Test {
public void test(int row,int col){
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\\a.csv"));//换成你的文件名
// reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String line = null;
int index=0;
while((line=reader.readLine())!=null){
String item[] = line.split(" ");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
if(index==row-1){
if(item.length>=col-1){
String last = item[col-1];//这就是你要的数据了
System.out.println(last);
}
}
//int value = Integer.parseInt(last);//如果是数值,可以转化为数值
index++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Test test = new Test();
test.test(3, 2);
}
}

你的数据格式有问题,空格的个数不确定,没办法每行用空格分隔。以下是我调整后的数据格式每行的数据以一个空格分隔,test方法传入的参数一次是,行,列:

1 电机 1

2 WBS 2

3 PID 3

4 CP 

5 社供出

6 原価実绩 

7 社供WC 

8 外注费 

9 直材费 

10 自家制品 

11 直経费 

12 その他 

13 注残 

14 注残