php导出excel(xls或xlsx)
$titles = array('订单号','商品结算码','合同号','供应商名称','专柜','商品名称','商品货号','商品单价','商品总价','供应商结算金额','商品数量','商品促销优惠','平台优惠抵扣','品牌订单优惠抵扣');
//导出准备
ob_get_clean();
ob_start();
echo implode("\t", $titles),"\n";
$currencyModel = app::get('ectools')->model('currency');
foreach ($lists as $key=>$value) {
$row = array();
$row['order_id'] = html_entity_decode("".$value['order_id']);
$row['supplier_num'] = $value['supplier_num'];
$row['agreement_code'] = $value['agreement_code'];
$row['supplier_name'] = $value['supplier_name'];
$row['shoppe_name'] = $value['shoppe_name'];
$row['name'] = $value['name'];
$row['bn'] = $value['bn'];
$row['price'] = $value['price'];
$row['nums'] = $value['nums'];
$row['g_price'] = $value['g_price'];
$row['settlement_amount'] = $value['settlement_amount'];
$row['goods_amount_off'] = $value['goods_amount_off'];
$row['amount_off'] = $value['amount_off'];
$row['brand_amount_off'] = $value['brand_amount_off'];
echo implode("\t", $row),"\n";
}
header('Content-Disposition: attachment; filename='.$filename);
header('Accept-Ranges:bytes');
header('Content-Length:' . ob_get_length());
header('Content-Type:application/vnd.ms-excel');
ob_end_flush();
2)格式选择
需要导出xls的话,用
header('Content-Type:application/vnd.ms-excel');
需要导出xlsx的话,用
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
xls和xlsx的区别的话,是储存数据量大小的问题,xls只可以保存大概5、6w数据,xlsx可以100w左右
3)长数字完整显示解决办法
$row['order_id'] = html_entity_decode("".$value['order_id']);
转: https://www.cnblogs.com/tujia/p/5999806.html
download.php下载
<?php
//获取要下载的文件名
$filename = $_GET['filename'];
//设置头信息
header('Content-Disposition:attachment;filename=' . basename($filename));
header('Content-Length:' . filesize($filename));
//读取文件并写入到输出缓冲
readfile($filename);