php导出excel(xls或xlsx)(解决长数字显示问题)
Posted Tiac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php导出excel(xls或xlsx)(解决长数字显示问题)相关的知识,希望对你有一定的参考价值。
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文件里,再解释它是什么东东,然后就发现这个东西了
以上是关于php导出excel(xls或xlsx)(解决长数字显示问题)的主要内容,如果未能解决你的问题,请参考以下文章
C#或.net中用NPIO要怎样才能导出2007以上的Excel(.xlsx)?
Apache POI 4.0.1版本 Excel导出数据案例(兼容 xls 和 xlsx)
s-s-rS 2008 是不是支持导出为 .xlsx 格式而不是 .xls
winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中