使用java删除.csv文件中的特定rownumbers

时间:2017-02-28 14:30:03

标签: java excel csv

例如:我正在尝试在.csv文件中搜索名称为“abc”的文本,该文件存在于多行的第6列中,我需要删除这些行。

我试过下面的代码。我能够得到第8行中文本“abc”存在的行号/行号,但它没有删除行。

    import java.io.BufferedReader;
import java.io.*;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;

public class ReadExcel {

    public static void main(String[] args)  throws Exception{

        String csvFile = "csv filelocation";

        CSVReader reader = new CSVReader(new FileReader(csvFile));
        List<String[]> allElements = reader.readAll();

        String [] nextLine;
        int lineNumber = 0;
        while ((nextLine = reader.readNext()) != null) {
            lineNumber++;

           if(nextLine[5].equalsIgnoreCase("abc")){
            System.out.println("Line # " + lineNumber);

            allElements.remove(lineNumber);



        }


        }

2 个答案:

答案 0 :(得分:0)

为了以CSV格式阅读文件,我目前正在使用库super-csv。有各种例子。

如果您需要帮助,请告诉我。

答案 1 :(得分:0)

因此,如果您想使用opencsv库,我将开始一个新示例,用于在CSV文件中编写新内容。我从你的示例代码中获取灵感。

List<String[]> allElements; /* This list will contain the lines that cover your criteria */ 

/*
...
*/

CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
writer.writeAll(allElements);
writer.close();