php导出excel(xls或xlsx)(解决长数字显示问题)

本文介绍了一种使用PHP实现Excel导出的方法,包括表格数据的准备、不同格式的选择(如xls与xlsx)及其区别,以及如何确保长数字的完整显示等关键技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件里,再解释它是什么东东,然后就发现这个东西了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值