package com.mossle.core.export; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.mossle.core.util.ServletUtils; public class CsvExportor implements Exportor { private String encoding = "GBK"; public void export(HttpServletRequest request, HttpServletResponse response, TableModel tableModel) throws IOException { StringBuilder buff = new StringBuilder(); for (int i = 0; i < tableModel.getHeaderCount(); i++) { buff.append(tableModel.getHeader(i)); if (i != (tableModel.getHeaderCount() - 1)) { buff.append(","); } } buff.append("\n"); for (int i = 0; i < tableModel.getDataCount(); i++) { for (int j = 0; j < tableModel.getHeaderCount(); j++) { buff.append(tableModel.getValue(i, j)); if (j != (tableModel.getHeaderCount() - 1)) { buff.append(","); } } buff.append("\n"); } response.setContentType(ServletUtils.STREAM_TYPE); ServletUtils.setFileDownloadHeader(request, response, tableModel.getName() + ".csv"); response.getOutputStream().write(buff.toString().getBytes(encoding)); response.getOutputStream().flush(); } public void setEncoding(String encoding) { this.encoding = encoding; } }