php导出CSV方法
来源:互联网 发布:最近流行什么网络词语 编辑:程序博客网 时间:2024/05/17 12:21
<script type="text/javascript"><!--google_ad_client = "pub-1466660535697685";/* 336x280, 创建于 08-5-7 */google_ad_slot = "8344613550";google_ad_width = 336;google_ad_height = 280;//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><script>google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);</script>
实现目标:
制作网站时,经常会遇到检索数据列表的情况。通常用户希望下载这些列表数据并存储到客户端。当然下载这些数据的时候是需要固定的格式,以便于用Excel等软件阅览。说的简单一些就是CSV/Excel数据导出 。
注意事项:
输出文档的基本格式为:列1,列2,列3,……,列n/n
格式化数据的同时要对特殊的字符进行过滤。譬如“,”如果不转换为全角“,”会导致数据格式的混乱。
实现方法:
举例:检索数据库表,将结果保存为字符串,进行格式和特殊字符的过滤后,导出到客户端的CSV文件。
OrderSearchEdit_saveCSV.php
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/OrderInfoManager.class.php");
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/CommonUtil.php");
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/CommonConst.php");
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/CommonErrorMsg.php");
include($_SERVER['DOCUMENT_ROOT'] . "/webadmin.php");
$searchcase = new OrderInfoManager();
$nowTime = microtime_float();
$searchcase = unserialize($_SESSION["ORDER_SEARCH_CASE"]);
$listcsv = $searchcase->doCSV();// 调用doCSV()方法
$filename = $nowTime;
//$filename = str_replace(":","",$nowTime);
//$filename = trim($filename);
//echo $filename;
header("Content-Disposition: attachment; filename=".$filename.".csv");
header('Content-Type:APPLICATION/OCTET-STREAM');
echo "注文No.,注文日,氏名,住所,支払い方法,合計金額,発送 ";
echo $listcsv;
?>
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/OrderInfoManager.class.php");
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/CommonUtil.php");
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/CommonConst.php");
include($_SERVER['DOCUMENT_ROOT'] . "/ftcart/CommonErrorMsg.php");
include($_SERVER['DOCUMENT_ROOT'] . "/webadmin.php");
$searchcase = new OrderInfoManager();
$nowTime = microtime_float();
$searchcase = unserialize($_SESSION["ORDER_SEARCH_CASE"]);
$listcsv = $searchcase->doCSV();// 调用doCSV()方法
$filename = $nowTime;
//$filename = str_replace(":","",$nowTime);
//$filename = trim($filename);
//echo $filename;
header("Content-Disposition: attachment; filename=".$filename.".csv");
header('Content-Type:APPLICATION/OCTET-STREAM');
echo "注文No.,注文日,氏名,住所,支払い方法,合計金額,発送 ";
echo $listcsv;
?>
doCSV()方法:
function doCSV(){
global $db;
$nowdate = getNowDateYYYYMMDD();
$SQL = "#####";
$rs=$db->query($SQL);
$result;
$payment_method;
$delivery_status;
if ((! DB::isError($rs))) {
while ($row = $rs->fetchRow()){
$row = Common_record($row);
if($row['payment_method_id']==0){$payment_method="銀行振り込み";}
else if($row['payment_method_id']==1){$payment_method="郵便局";}
else if($row['payment_method_id']==2){$payment_method="代引き";}
else{$payment_method="";}
if($row['actual_send_date']>$nowdate){$delivery_status="未発送";}
else if($row['actual_send_date']<$nowdate){$delivery_status="発送済";}
//格式化并过滤特殊字符
$result .= $row['order_id'].",".
$row['create_date'].",".
$row['order_first_name']." ".
$row['order_last_name'].",".
str_replace(",",",",$row['order_address']).",".
$payment_method.",".
$row['amount'].",".
$delivery_status." ";
}
return $result;
}
}
global $db;
$nowdate = getNowDateYYYYMMDD();
$SQL = "#####";
$rs=$db->query($SQL);
$result;
$payment_method;
$delivery_status;
if ((! DB::isError($rs))) {
while ($row = $rs->fetchRow()){
$row = Common_record($row);
if($row['payment_method_id']==0){$payment_method="銀行振り込み";}
else if($row['payment_method_id']==1){$payment_method="郵便局";}
else if($row['payment_method_id']==2){$payment_method="代引き";}
else{$payment_method="";}
if($row['actual_send_date']>$nowdate){$delivery_status="未発送";}
else if($row['actual_send_date']<$nowdate){$delivery_status="発送済";}
//格式化并过滤特殊字符
$result .= $row['order_id'].",".
$row['create_date'].",".
$row['order_first_name']." ".
$row['order_last_name'].",".
str_replace(",",",",$row['order_address']).",".
$payment_method.",".
$row['amount'].",".
$delivery_status." ";
}
return $result;
}
}
这样就ok啦,在你的导出数据html页面做一个<input type="button"onclick="do_CSV()">然后在JS里面写一个提交form的do_CSV(),并将formaction到OrderSearchEdit_saveCSV.php就完成了。应该注意的是由于OrderSearchEdit_saveCSV.php中声明的是一个Content-Type:APPLICATION/OCTET-STREAM所以当前页面不会被刷新。这点可能大家都知道,不过我是刚学到的,所以记录一下。
- php导出CSV方法
- php导出CSV方法
- php导出CSV方法 (转)
- php导出CSV的方法
- php 导出 xls,csv 的方法,csv导入mysql
- php导出csv,xls
- php导出csv文件
- PHP导出CSV文件
- php导出CSV文件
- php导入、导出csv
- PHP导出CSV
- PHP 导出CSV
- PHP导出CSV文件
- php 导出CSV
- PHP导出CSV文件
- php 导出csv文件
- php导出csv报表
- PHP导出CSV
- 关于对SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- Java中byte的符号位
- DIV + CSS 入门
- 书写博客,从此时开始
- 一个发人深思的预言故事
- php导出CSV方法
- 源码下载
- 教你如何将打印稿变成电子稿
- javascript技巧大全
- 征服 Ajax 应用程序的安全威胁
- 基于命令行程序如何判断自己被终止
- 简洁、明晰!数据库设计三大范式应用实例剖析
- WebLogic Server性能调优
- C# Stream 和 byte[] 之间的转换