如何从CSV文件输出特定行的内容?

时间:2016-11-15 02:38:43

标签: java excel csv replace cell

我的代码的目标是询问用户输入,我的代码将搜索我的CSV文件并输出数据所在的正确行和列。但是,我对如何提取特定单元格感到非常难过,以便我可以编辑内容。

假设我搜索banana并且我的代码搜索banana,然后将包含banana,store的特定行输出到变量,以便我可以编辑该位置,然后将其放入回到正确的牢房里。

以下是查找我搜索的特定文字的行和列的代码:

try{

        String strSearch = searchSerialField.getText();

        CSVReader reader = new CSVReader(new FileReader("test.txt"), ',');
        List<String[]> myEntries = reader.readAll();
        reader.close();

        for (int row = 0; row < myEntries.size(); row++)
        {
            for (int column = 0; column < myEntries.get(row).length; column++)
            {
                if (myEntries.get(row)[column].trim().equalsIgnoreCase(strSearch))
                {
                    System.out.println("Found - Your item is on row: " + row + ", column: " + column);
                }
            }
        }

//I now need to output the contents of the row into something so I can edit it

我现在只需要将行提取成某些东西,然后我可以编辑位置,但我对于如何接近这一点我一无所知?

如果有人有任何我应该遵循的提示或方法,那将非常感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

Java Get-ChildItem -Recurse -Directory -Hidden -Filter .git | ForEach-Object { & git --git-dir="$($_.FullName)" --work-tree="$(Split-Path $_.FullName -Parent)" pull origin master } 是不可变的;你不能改变它们,你必须创造新的。另一方面,String和数组是可变的(除非它们不是)。

你可以......

List

完成后,您可以使用for (int row = 0; row < myEntries.size(); row++) { for (int column = 0; column < myEntries.get(row).length; column++) { if (myEntries.get(row)[column].trim().equalsIgnoreCase(strSearch)) { System.out.println("Found - Your item is on row: " + row + ", column: " + column); String myNewString = "something else"; myEntries.get(row)[column] = myNewString; // Replaces the String at this array index } } } // Now write the contents to a CSVWriter variable called 'myCSVWriter' for (String[] entry : myEntries) { myCSVWriter.writeNext(entry); } myCSVWriter.close(); // Actually -- instead of that -- an easier way would be... myCSVWriter.writeAll(myEntries); myCSVWriter.close(); 集合覆盖文件内容。