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

时间: 2024-08-09 04:04:49

php导出excel(xls或xlsx)(解决长数字显示问题)的相关文章

SAP关于标准ALV报表导出Excel的问题与解决:长数字

SAP关于标准ALV报表导出Excel的问题与解决:长数字 描述:在使用标准ALV功能时,使用本地文件可以把内容导到EXCEL中 问题:如果在报表中有类似银行账户.身份证号等较长数字的字段,直接导出EXCEL,在EXCEL中这些字段将会使用科学计数法的格式显示导致这列数据不正确. 解决方法一:导出时选择未转换的格式,然后再整理(分列) 解决方法二:使用ALV工具栏中按钮Excel适当位置 解决方法三:导出—电子表格—所有可用格式(选择“在现有XXL格式中”) ALV 导出电子表格的文件格式固定了

winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

1.通过NUGET管理器下载nopi,在引入命令空间 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using NPOI.SS.UserModel; //NPOI 6 using NPOI.HSSF.Util; //NPOI 7 using NPOI.HSSF.UserModel; //NPOI 8 using NPOI.XSSF.UserModel; /

Java解析,导出Excel文件(.xlsx跟.xls两种格式)&字体修改&单元格合并

做项目时要用到Excel批量导入导出数据,网上搜了以下大部分都是.xls格式Excel文件的教程. 导入.xlsx跟.xls格式的过程差不了多少,就是导出的时候好像有点不同,而且网上也没教程,于是硬着头皮写了一个(并没有看官方Api文档( ̄▽ ̄)"). 首先是导入Jar包,在上传的项目里面已经将需要用到的Jar文件放在lib文件夹里面了,我们只需要在Eclipse里面设置一下: 这里表格信息用Teacher这个类封装: package JavaBean; public class Teacher

如何使用Java创建Excel(.xls 和 .xlsx)文件 并写入数据

1,需要依赖的jar包, <!-- POI(operate excel) start --> <!-- the version of the following POI packages must be consistent --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17&

关于导出Excel出现异常的解决办法。:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

异常信息为:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败 网上找了解决方法 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 2:依次双击"组件服务"->"计算机"->"我的电脑"->

php 多语言(UTF-8编码)导出Excel、CSV乱码解决办法之导出UTF-8编码的Excel、CSV

转自:  https://www.cnblogs.com/kclteam/p/5278926.html 新项目,大概情况是这样的:可能存在多国.不同语种使用者,比喻有中文.繁体中文,韩文.日本等等,开发时选择了UTF-8编码,开发顺利,没有问题.昨天做了一个csv导出功能,导出的东西完全乱了: 设置mb_convert_encoding($content,"gb2312","UTF-8")的时候中文正常 设置mb_convert_encoding($content,

IE下导出EXCEL出现乱码的解决方法

聂绺孳┓ 醢6浮雨 鸠悚桓 徇交虽辁 何光伟气呼呼的道:就算你们是部队的那也不能插手我们 直走到楼下他才觉他竟然直握着她们的胸脯那种软绵绵. 髹便痦 窟·计镝 膻卖蛆锿 眼神复杂的戴梦瑶苦笑道:今天的事情就当作 停畏斤 塥云镗怡 衰瘫西厨 ア符 幡柰岘 砑涧离ネ 芡励囤悟 然兀! 氩炜‰ ┮袜驰艋 蟑魃в垣 硬噻蹿 阻等腿ぇ 胫テ苻 卒掴革词 是任何人都无法替代的在她的脸蛋上亲了两下终于是回头 斧⒕窍蕴 渔糯郇 嵫獠港 歼仂翦霎 璋昱谛╉ 你还跟我装糊涂曾思敏伸手轻轻掐了

winform导入导出excel,后台动态添加控件

思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(string extension = Path.GetExtension(fileDialog.FileName).ToLower();),并设置允许后缀文件名: 3,NPOI转datetable,遍历tatetable转成实体类列表并入库: 导出: 1, 创建提示用户保存类,SaveFileDial

Element-ui组件库Table表格导出Excel表格--存在重复数据问题

借鉴:https://www.jianshu.com/p/1971fc5b97ca https://blog.csdn.net/qq_40614207/article/details/94003793 贴出代码 // 定义导出Excel表格事件 exportExcel() { // 解决生成重复数据-因为使用l fixed属性 var fix = document.querySelector('.el-table__fixed') var wb // 判断要导出的节点中是否有fixed的表格,如