Example usage for org.apache.commons.lang3 StringEscapeUtils escapeCsv

List of usage examples for org.apache.commons.lang3 StringEscapeUtils escapeCsv

Introduction

In this page you can find the example usage for org.apache.commons.lang3 StringEscapeUtils escapeCsv.

Prototype

public static final String escapeCsv(final String input) 

Source Link

Document

<p>Returns a String value for a CSV column enclosed in double quotes, if required.</p> <p>If the value contains a comma, newline or double quote, then the String value is returned enclosed in double quotes.</p> <p>Any double quote characters in the value are escaped with another double quote.</p> <p>If the value does not contain a comma, newline or double quote, then the String value is returned unchanged.</p> see <a href="http://en.wikipedia.org/wiki/Comma-separated_values">Wikipedia</a> and <a href="http://tools.ietf.org/html/rfc4180">RFC 4180</a>.

Usage

From source file:serposcope.controllers.google.GoogleTargetController.java

protected Result renderExport(Group group, GoogleTarget target, List<GoogleSearch> searches, List<Run> runs,
        LocalDate minDay, LocalDate maxDay, LocalDate startDate, LocalDate endDate) {

    return Results.ok().text().addHeader("Content-Disposition", "attachment; filename=\"export.csv\"")
            .render((Context context, Result result) -> {
                ResponseStreams stream = context.finalizeHeaders(result);
                try (Writer writer = stream.getWriter()) {
                    writer.append("date,rank,url,target,keyword,device,tld,datacenter,local,custom\n");
                    for (Run run : runs) {
                        String day = run.getDay().toString();
                        for (GoogleSearch search : searches) {
                            GoogleRank rank = googleDB.rank.getFull(run.getId(), group.getId(), target.getId(),
                                    search.getId());
                            writer.append(day).append(",");
                            if (rank != null) {
                                writer.append(Integer.toString(rank.rank)).append(",");
                                writer.append(rank.url).append(",");
                            } else {
                                writer.append(",").append(",");
                            }/*from w  w w.j  ava 2s  . c o m*/
                            writer.append(StringEscapeUtils.escapeCsv(target.getName())).append(",");
                            writer.append(StringEscapeUtils.escapeCsv(search.getKeyword())).append(",");
                            writer.append(search.getDevice() == GoogleDevice.DESKTOP ? "D" : "M").append(",");
                            writer.append(
                                    search.getTld() != null ? StringEscapeUtils.escapeCsv(search.getTld()) : "")
                                    .append(",");
                            writer.append(search.getDatacenter() != null
                                    ? StringEscapeUtils.escapeCsv(search.getDatacenter())
                                    : "").append(",");
                            writer.append(
                                    search.getLocal() != null ? StringEscapeUtils.escapeCsv(search.getLocal())
                                            : "")
                                    .append(",");
                            writer.append(search.getCustomParameters() != null
                                    ? StringEscapeUtils.escapeCsv(search.getCustomParameters())
                                    : "");
                            writer.append("\n");
                        }
                    }

                } catch (IOException ex) {
                    LOG.warn("error while exporting csv");
                }
            });

}