2020 补充:https://www.cnblogs.com/tujia/p/11358096.html
1)demo
$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\']);
就是先拼上html 特殊字符 ,再转回去的意思
PS:这个办法,是从PHPExcel上逆回去找到的
我把PHPExcel生成的数字复制到txt文件里,再解释它是什么东东,然后就发现这个东西了