Как сохранить нулевую начальную строку при экспорте данных с использованием библиотеки opencsv - PullRequest
0 голосов
/ 08 июня 2019

Я использую opencsv библиотеку в Java и экспорт CSV. Но у меня есть проблема. Когда я использовал строку начинаются с нуля, это выглядит как: 0123456, когда я экспортирую, удаляю 0, и мой CSV выглядит как: 123456. Ноль отсутствует. Я использовал способ:

"\"\t"+"0123456"+ "\""; но при экспорте в csv это выглядит так: "0123456". Я не хочу этого Я хочу 0123456. Я не хочу редактировать из Excel, потому что некоторые конечные пользователи не знают, как редактировать. Как экспортировать CSV, используя открытый CSV и сохранить 0 начало строки. Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 08 июня 2019

Я думаю, что на самом деле проблема не в генерировании CSV, а в том, как Excel обрабатывает данные при открытии через проводник.

Попробовав этот код и просмотрев CSV в текстовом редакторе (не в Excel), обратите внимание, что он отображается правильно, хотя при открытии в Excel ведущие нули теряются!

CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
    // feed in your array (or convert your data to an array)
    String[] entries = "0123131#21212#021213".split("#");
    List<String[]> a = new ArrayList<>();
    a.add(entries);
    //don't apply quotes
    writer.writeAll(a,false);
    writer.close();

See correct leading 0s being retained in text editor

Если вы действительно уверены, что хотите видеть первые 0 для числовых значений , когда Excel открывается пользователем, тогда каждая запись ячейки будет в формате = "dataHere" ; см. код ниже:

 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
        // feed in your array (or convert your data to an array)
        String[] entries = "=\"0123131\"#=\"21212\"#=\"021213\"".split("#");
        List<String[]> a = new ArrayList<>();
        a.add(entries);
        writer.writeAll(a);
        writer.close();

Теперь Excel показывает при открытии Excel из проводника Windows (двойной щелчок):

Excel displays with leading 0s

Но теперь, если мы увидим CSV в текстовом редакторе, с измененными данными, чтобы «соответствовать» просмотру в Excel, он будет отображаться как:

enter image description here

Также смотрите ссылку: формат номер-в-текст-в-CSV-при открытых в-и-первенствует-и-блокнот

0 голосов
/ 08 июня 2019

пытались ли вы использовать строку таким образом "'"+"0123456".' char будет помечать число как текст при разборе в excel

...