StackOverflow でこれに関する他の質問をしましたが、そこに記載されているライブラリでは読み取りまたは書き込みしか許可されていません。それらの一部は、SuperCSV のように部分的な読み取りまたは書き込みを許可しますが、特定のセルの値を更新するためにライブラリを使用することはできません。使用できる他のライブラリはありますか、それとも手動で行う必要がありますか?
1857 次
3 に答える
1
CSVを読み込み、必要なセルを変更してから、ファイルに書き戻します。
于 2012-06-14T14:46:48.287 に答える
1
いいえ、CSVファイルのセルを直接更新する方法はありません。CSVを行ごとに読み取り、次に列ごとに読み取り、セル(コンテンツ)を更新して新しいファイルに書き込むことができます。
また、pattern(regex)がわかっている場合は、String.replace()メソッドを使用できます。
于 2012-06-14T14:53:43.517 に答える
0
There is no in build function to edit csv file. Here is one approach to edit csv file.
package maven.selenium;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;
import jxl.read.biff.BiffException;
import jxl.read.biff.File;
public class App {
public static void main(String[] args) throws BiffException, IOException {
String csv = "C:/Users/shubham.mahajan/Desktop/data.csv";
CSVReader reader = new CSVReader(new FileReader(csv), ',');
List<String[]> csvBody = reader.readAll();
String[] First_Row = csvBody.get(0);
CSVWriter writer = new CSVWriter(new FileWriter(csv), ',');
writer.writeNext(First_Row);
for (int k = 0; k < First_Row.length; k++) {
if (First_Row[k].equals("value")) {
for (int j = 1; j < csvBody.size(); j++) {
String[] Temp = csvBody.get(j);
Temp[k] = "replacing value";
writer.writeNext(Temp);
}
}
}
reader.close();
writer.flush();
writer.close();
}
}
于 2021-10-21T05:05:20.903 に答える