日期:2014-05-17  浏览次数:20647 次

jsp导出csv文件问题??
function expContent(){
var errmsg = "";
var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号,订单状态,订单总额,物流编号,产品费用,硬盘费用,运费,分发中心,收货地址,收货人,备注"; var con = "<%=con%>";con是过滤条件

var filename = "order_report_qry.csv";
if(errmsg!=""){
alert(errmsg);
}else{
form1.action = "order_export.jsp?con="+con+"&fields="+fields+"&filename="+filename;
form1.submit();
form1.action = "order_report_qry1.jsp";
return true;
}
}

在order_export.jsp中调用StringBuffer csvFileContent = new CsvFileParser().csvUserExport1(con,con1, fileds);方法

csvUserExport1(con,con1, fileds);方法如下
public StringBuffer csvUserExport1(String con,String con1, String fileHead)throws Exception{
String querySQL ="select u.user_name,"
+ "u.real_name,"
+ "(select player_brand from registcard r where u.registcardid = r.registcardid) as player_brand,"
+ "(select player_type from player_type_tab where player_type_id = (select player_type_id from registcard r where u.registcardid = r.registcardid )) as player_type,"
+ "o.create_time,"
+ "o.Process_date,"
+ "c.consign_date,"
+ "r.signed_date,"
+ "o.order_no,"
+ "(case o.order_status when 0 then '待受理' when 1 then '已受理' when 2 then '已撤单' when 3 then '已完单' when 4 then '已发货' when 5 then '已到货' end) as order_status,"
+ "o.should_amount,"
+ "c.delivery_no,"
+ "o.content_fee,"
+ "o.hd_amount,"
+ "o.deal_fee,"
+ "(select center_name from dist_center_city d right join user_tab u2 on d.dist_id=u2.dist_id where o.user_id = u2.user_id) as center_name,"
+ "a.rev_address,"
+ "a.receiver,"
+ "o.remark "
+ "from order_tab o "
+ "left join user_tab u on o.user_id = u.user_id "
+ "left join address_tab a on o.address_id = a.address_id "
+ "left join consign_tab c on o.order_id = c.order_id "
+ "left join receipt_tab r on o.order_id = r.order_id "
+ ",dist_center_city d where d.dist_id=u.dist_id and o.user_id = u.user_id "
+ con+ " order by o.create_time desc";
// 判断sql
if(querySQL.indexOf("*", 0) != -1){
//pw.println("查询字段不合法!");
//导入csv文件数据不合法异常
throw new Exception("查询字段不合法!");
}

//获取连接
DBConn dbcon = null;
//业务数据
StringBuffer finalData = new StringBuffer();
//添加文件头
finalData.append(fileHead);
finalData.append("\r\n");
try {
//初始化
dbcon = UseDB.getConn();
//迭代数据
Vector<String[]> result = dbcon.executeQuery(querySQL);
for(int j = 0; j < result.size(); j ++){
//设置第一次标识
boolean isOutterFirstFlag = true;
//取数据
String[] resultArray = (String[])result.get(j);
for(int i = 0; i < resultArray.length; i ++){
if(isOutterFirstFlag){
finalData.append(resultArray[i]);
isOutterFirstFlag = false;
}else{
finalData.append(",");
finalData.append(resultArray[i]);
}
}
finalData.append("\r\n");
}
} catch (Exception e) {
try {
pw.println("csvFileExport:" + e.getMessage());
}catch(Exception e1){}
}finally{
try{
if(dbcon != null){
dbcon.close();
}
}catch(Exception ex){