【问题标题】:Is there any way to change value of a particular cell in a csv file in java?有没有办法在java中更改csv文件中特定单元格的值?
【发布时间】:2012-06-14 14:45:48
【问题描述】:

我已经在 StackOverflow 上解决了有关此问题的其他问题,但那里提到的库只允许读取或写入。其中一些确实允许像 SuperCSV 一样进行部分读取或写入,但没有库可用于更新特定单元格的值。是否有其他可以使用的库或者我需要手动完成?

【问题讨论】:

  • 你将如何识别那个单元格?有什么规律吗?

标签: java csv opencsv supercsv


【解决方案1】:

读取 CSV,修改所需的单元格,然后将其写回文件。

【讨论】:

  • 如何修改单元格?实际上,此功能将用于神经引擎。它不像我想对特定文件执行此操作。
【解决方案2】:

不,无法直接更新 CSV 文件中的单元格。您可以逐行读取 CSV,然后逐列读取,更新单元格(内容)并写入新文件。

如果你知道模式(正则表达式),那么你可以使用 String.replace() 方法。

【讨论】:

  • 是的,这就是我在另一个关于 SO 的问题上读到的内容。您能否告诉我更新单元格内容的最佳方法是什么?我应该将它们解析成字符串还是应该使用库?
  • 我不知道有什么库可以更好地读取字符串中的文件并替换内容。
【解决方案3】:

构建函数中没有编辑 csv 文件的功能。这是编辑 csv 文件的一种方法。

包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();
    }
}

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
  • 请在提供的answer 中添加更多详细信息。
猜你喜欢
  • 1970-01-01
  • 2012-04-01
  • 2022-08-02
  • 2021-08-29
  • 1970-01-01
  • 2021-02-20
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多