csv导出:php导出CSV的方法来源: 发布时间:星期四, 2009年2月12日 浏览:287次 评论:0
制作网站WebSite时经常会遇到检索数据列表情况通常用户希望下载这些列表数据并存储到客户端当然下载这些数据时候是需要固定格式以便于用Excel等软件Software阅览说简单些就是CSV/Excel数据导出 注意事项: 输出文档基本格式为:列1列2列3……列n\\n 格式化数据同时要对特殊进行过滤譬如“,”如果不转换为全角“”会导致数据格式混乱 实现思路方法: 举例:检索数据库表将结果保存为串进行格式和特殊过滤后导出到客户端CSV文件 OrderSearchEdit_saveCSV.php <?php ($_SERVER[’DOCUMENT_ROOT’] . \"/ftcart/OrderInfoManager..php\"); ($_SERVER[’DOCUMENT_ROOT’] . \"/ftcart/CommonUtil.php\"); ($_SERVER[’DOCUMENT_ROOT’] . \"/ftcart/CommonConst.php\"); ($_SERVER[’DOCUMENT_ROOT’] . \"/ftcart/CommonErrorMsg.php\"); ($_SERVER[’DOCUMENT_ROOT’] . \"/webadmin.php\"); $search = OrderInfoManager; $nowTime = microtime_float; $search = unserialize($_SESSION[\"ORDER_SEARCH_CASE\"]); $listcsv = $search->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; ((! DB::isError($rs))) { while ($row = $rs->fetchRow){ $row = Common_record($row); ($row[’payment_method_id’]0){$payment_method=\"銀行振り込み\";} ($row[’payment_method_id’]1){$payment_method=\"郵便局\";} ($row[’payment_method_id’]2){$payment_method=\"代引き\";} {$payment_method=\"\";} ($row[’actual_send_date’]>$nowdate){$delivery_status=\"未発送\";} [Page] ($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.\" \"; } $result; } } 这样就ok啦在你导出数据html页面做个<input type=\"button\" onclick=\"do_CSV\">然后在JS里面写个提交formdo_CSV并将form action到OrderSearchEdit_saveCSV.php就完成了应该注意是由于OrderSearchEdit_saveCSV.php中声明是个Content-Type:APPLICATION/OCTET-STREAM所以当前页面不会被刷新这点可能大家都知道不过我是刚学到所以记录下 0
相关文章读者评论发表评论 |