本文实现了一个基于servlet技术的简单的csv文件导出的程序实例。

来源:互联网 发布:js ide工具 编辑:程序博客网 时间:2024/05/17 01:50

本文实现了一个基于servlet技术的简单的csv文件导出的程序实例。

代码如下,其中setCsvData函数的作用是设置导出的数据,并将结果保存于Vector中,实际应用时可以任意扩展该函数:

package common;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Vector;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class Go2Csv extends HttpServlet {
 public Vector vecCsvData;

 private String FileName;

 public void doGet(HttpServletRequest request, HttpServletResponse response)
 // throws ServletException, IOException
 {
  FileName = "Untitled.csv"; // default file name

  vecCsvData = new Vector();

  // sets the data to be exported
  setCsvData(request);

  // Exporting vector to csv file
  String strOut = "";
  for (int i = 0; i < vecCsvData.size(); i++) {
   String[] strLine = (String[]) vecCsvData.elementAt(i);
   int col_num = strLine.length;
   for (int j = 0; j < col_num; j++) {
    strOut += strLine[j];
    if (j < col_num - 1) {
     strOut += ",";
    }
   }
   strOut += "/n";
  }

  // ***** Output strOut to Response ******
  response.reset(); // Reset the response
  response.setContentType("application/octet-stream;charset=GB2312"); // the encoding of this example is GB2312
  response.setHeader("Content-Disposition", "attachment; filename=/""+ FileName + "/"");

  PrintWriter out;
  try {
   out = response.getWriter();
   out.write(strOut);
  } catch (IOException e) {
   e.printStackTrace();
  }
  // ***************************************
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

 /**
  * Sets the data to be exported
  *
  * @param request
  */
 public void setCsvData(HttpServletRequest request) {
  // Writing vector
  for (int i = 0; i < 5; i++) {
   String[] strLine = new String[10];
   for (int j = 0; j < 10; j++) {
    strLine[j] = Integer.toString(i) + "-" + Integer.toString(j);
   }
   vecCsvData.addElement(strLine);
  }
 }

 /**
  * Sets the file name to be exported
  *
  * @param filename
  */
 public void setFileName(String filename) {
  FileName = filename;
 }
}

调用方法:
http://hostname:port/ApplicationName/servlet/common.Go2Csv

原创粉丝点击