首页 > 代码库 > php导出excel(xls或xlsx)(解决长数字显示问题)
php导出excel(xls或xlsx)(解决长数字显示问题)
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文件里,再解释它是什么东东,然后就发现这个东西了
php导出excel(xls或xlsx)(解决长数字显示问题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。