Экспорт в CSV / Excel в Java - PullRequest
       14

Экспорт в CSV / Excel в Java

6 голосов
/ 24 августа 2011

Я пытаюсь экспортировать данные в файл CSV через Java, и у меня есть некоторый код для этого, но, похоже, он не выводит файл CSV.Может кто-нибудь сказать мне, что не так?То, что я хотел бы сделать, это не сохранять файл где-то, я бы хотел, чтобы он был напрямую экспортирован пользователю.

РЕДАКТИРОВАТЬ: На всякий случай, если неясно, я не хочу, чтобы файл былсохраненный в любом месте, но он хотел бы, чтобы он автоматически выводился пользователю, т. е. он щелкает по экспорту и получает окно «Run / Save results.csv» и открывает файл.В настоящее время файл сохраняется, поэтому я знаю, что этот метод, кажется, работает, как раз наоборот, как я хочу.

public static void writeToCSV(List<Map> objectList) {
    String CSV_SEPARATOR = ",";
    try {
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream("results.csv"), "UTF-8"));
        for (Map objectDetails : objectList) {
            StringBuffer oneLine = new StringBuffer();
            Iterator it = objectDetails.values().iterator();

            while (it.hasNext()) {
                Object value = it.next();

                if(value !=null){
                    oneLine.append(value.toString());
                    }

                if (it.hasNext()) {
                    oneLine.append(CSV_SEPARATOR);
                }
            }
            bw.write(oneLine.toString());
            bw.newLine();
        }
        bw.flush();
        bw.close();
    } catch (UnsupportedEncodingException e) {
    } catch (FileNotFoundException e) {
    } catch (IOException e) {
    }
}

Ответы [ 4 ]

8 голосов
/ 24 августа 2011

Я бы рекомендовал использовать для этого фреймворк, такой как opencsv .Он также помогает вам убегать и цитировать.

1 голос
/ 24 августа 2011

Если вы не получаете ошибок, проверьте каталог, в котором находится ваш код.Без определенного пути ваш файл сохраняется там.

РЕДАКТИРОВАТЬ: поскольку файл сохраняется и вы хотите, чтобы он открывался автоматически, используйте

Runtime.getRuntime().exec("results.csv"); 

(Для Windows - открываетфайл csv в приложении по умолчанию для файлов csv)

Runtime.getRuntime().exec("open results.csv"); 

(для Mac - открывает файл csv в приложении по умолчанию для файлов csv)

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

Для этого читателю CSV необходимо прочитать память вашей программы. Это немного сложная вещь. Итак, вместо этого сохраните файл во временную папку. Нет проблем делать подобные вещи.

0 голосов
/ 11 июня 2014

рекомендуем HSSFWorkbook, чтобы легко читать и писать файлы Excel.http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...