Я написал класс Java для создания CSV файла:Письменное CSV файл записывает только одну ячейку в строке
public class CSVGenerator {
private static String REFERRAL_HEADER = "Position,Mail,Invitations,Qualified invitations";
private static String TOPS_HEADER = "Position,Mail,Number of conferences,Number of new contacts, Average conf duration";
public static String generate(String source, JsonNode root) throws IOException {
String result = "";
CSVWriter writer = new CSVWriter(new FileWriter(source+".csv"));
if (source.compareTo("referral") == 0)
result = REFERRAL_HEADER;
else if (source.compareTo("tops") == 0)
result = TOPS_HEADER;
writer.writeNext(result.split(","));
Iterator<JsonNode> it = root.getElements();
while (it.hasNext()) {
Iterator<JsonNode> it2 = it.next().getElements();
result = "";
while (it2.hasNext())
{
result += it2.next().asText();
if (it2.hasNext())
result += ",";
}
writer.writeNext(result.split(","));
}
writer.close();
return result;
}
}
Результирующий файл не очень хорошо отформатированные. Там только одна ячейка построчно, содержащий все ячейки и разделяющей запятой, как это:
header1,header2,header3
1,support,test
2,alpha,gamma
Что я делаю неправильно?
EDIT:
Чтобы быть более точным на выходе
У меня есть: "HEADER1, HEADER2, header3", "", ""
Я хочу: «header1 "," header2 "," header3 "
Вот мой вывод. Каждая строка в одной уникальной ячейке.
""Position","Mail","Invitations","Qualified invitations""
""1","xxxxx.com","129","23""
""2","xxxx.com","54","8""
""3","xxxx.com","197","5""
""4","xxxx","13","5""
""5","xxxx","8","4""
""6","xxxx.com","4","4""
""7","xxx.com","31","3""
""8","xxx.com","30","3""
""9","xxx.com","18","3""
""10","xxx.com","13","3""
Что не так с этим выходом? выглядит хорошо для меня –
Я не буду размещать электронные письма и прочее здесь. Проблема в том, что для одной строки есть одна ячейка. Это похоже на разделение запятой, не работает. Поэтому у меня есть: «header1, header2, header3», «», «» вместо «header1», «header2», «header3» – EoiFirst