一个用servlet实现导出csv文件的实例

servlet

作者:李书鹏 tukeyli@sohu.com

关键字: Java Servlet CSV

本文实现了一个基于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

导出文件Untitled.csv内容如下:
0-0,0-1,0-2,0-3,0-4,0-5,0-6,0-7,0-8,0-9
1-0,1-1,1-2,1-3,1-4,1-5,1-6,1-7,1-8,1-9
2-0,2-1,2-2,2-3,2-4,2-5,2-6,2-7,2-8,2-9
3-0,3-1,3-2,3-3,3-4,3-5,3-6,3-7,3-8,3-9

时间: 2024-11-04 23:17:09

一个用servlet实现导出csv文件的实例的相关文章

详解PHP导入导出CSV文件_php实例

我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. 复制代码 代码如下: CREATE TABLE `student` (       `id` int(11) NOT NULL auto_increment,       `name` varchar(50) NOT NULL,       `sex` varchar(10) NOT NULL,       `age` smallint(3) NO

thinkPHP导出csv文件及用表格输出excel的方法_php实例

本文实例讲述了thinkPHP导出csv文件及用表格输出excel的方法.分享给大家供大家参考,具体如下: 1.thinkphp导出csv文件 导出csv文件可能就那几行代码,今天有个问题困扰我好久,就是导出之后出现一些html代码,这个不应该,view里面是空的,controller中最后也没有$this->display(),最后细心看到think_page_trace这样的字样,恍然大悟,是页面的跟踪日志,这个默认是会输出来的.最后在方法后面加了一个exit结束就好了,下面是代码: 1.I

php导出csv文件,可导出前导0实例代码_php实例

实例一:可导出前导0 //导出csv格式文件 $data数据 $title_arr标题 $file_name文件名 function exportCsv($data,$title_arr,$file_name=''){ ini_set("max_execution_time", "3600"); $csv_data = ''; /** 标题 */ $nums = count($title_arr); for ($i = 0; $i < $nums - 1; +

应用Java泛型和反射导出CSV文件的方法_java

本文实例讲述了应用Java泛型和反射导出CSV文件的方法.分享给大家供大家参考.具体如下: 项目中有需求要把数据导出为CSV文件,因为不同的类有不同的属性,为了代码简单,应用Java的泛型和反射,写了一个函数,完成导出功能. 复制代码 代码如下: public <T> void saveFile(List<T> list, String outFile) throws IOException {         if (list == null || list.isEmpty())

Oracle 有导出 CSV 文件的功能,java可以调用Oracle的这个功能吗?

问题描述 大家好,请问Oracle有导出CSV文件的功能,java可以调用Oracle的这个功能吗?如果有如何做?谢谢您的回答,(俺是萝卜) 解决方案 解决方案二:应该要自己写方法的吧,再导出为csv文件.我猜的.呵呵解决方案三:不知道是不是能调用但是我觉得有调用它的那个工夫,自己都写了一个导出CSV的模块了

php导出csv文件,可导出前导0实例代码

实例一:可导出前导0 //导出csv格式文件 $data数据 $title_arr标题 $file_name文件名 function exportCsv($data,$title_arr,$file_name=''){ ini_set("max_execution_time", "3600"); $csv_data = ''; /** 标题 */ $nums = count($title_arr); for ($i = 0; $i < $nums - 1; +

php 导出csv文件程序

php 导出csv文件程序 <?php   $Date = date("Y-m-d"); $Filename = $Date.'_'.date("h_i_s").".csv"; $Table = isset($_GET['tid'])?$_GET['tid']:''; $Auto = isset($_POST['d'])?$_POST['d']:''; if( is_numeric($Auto ) ){  $Table =$Auto; }

一个用组件动态创建Excel文件的实例

excel|创建|动态 一个用组件动态创建Excel文件的实例    在精华区中有一篇关于在ASP中动态创建的Excel文章, 但实际上我们会发现如果我们在ASP中用Set MyExcelChart = server.CreateObject("Excel.Sheet")是行不通的. 这样做的话会出现如下的错误信息:Only InProc server components should be used. If you want to use LocalServer component

PHP把导入和导出CSV文件到mysql数据库方法

下面只是一个简单的实例 我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息.  代码如下 复制代码 CREATE TABLE `student` (    `id` int(11) NOT NULL auto_increment,    `name` varchar(50) NOT NULL,    `sex` varchar(10) NOT NULL,    `age` smallint(3) NO