php读取excel中文乱码 excel_class…

本文介绍了使用Excel_class.php工具导入Excel文件时遇到的中文乱码问题及两种解决方案。第一种方法涉及修改类文件中的编码转换函数;第二种方法则通过禁用原函数并使用PHP内置函数实现正确的编码转换。

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

     今天碰到了大问题,就是读取excel的中文乱码大问题!

     Excel_class.php是一款php导入excel的工具,它可以方便从excel导入数据到php,也可以方便用php把数据导入到excel.但是今天很不给力!

    我搜集了很多资料就是没找到,后来想到:百度使我们最好的老师。好了,现在就找老师去!

    果然,在百度上搜到了关于这个工具的处理乱码的方法。

 

    第一种方法:修改excel_class.php类文件,查找$s = uc2html($exc->sst['data'][$ind]);替换 为 $s = iconv(‘utf-16le’,'utf-8′,$exc->sst['data'][$ind]),这样编码就是utf-8了.

如果还想把数据再导入mysql,而你的mysql编码是GB2312,那么你就需要再把数据从utf-8转到gb2312了,可以这样:$s=iconv(“UTF-8″,”GB2312″,$s)。

    第二种方法:打开excel_class.php,找到函数uc2html, 将函数中的代码注释掉,直接将参数返回,即改函数不做任何操作。
function uc2html($str) {
return $str;
}

接下来使用PHP中提供的函数mb_convert_encoding来将UTF-16LE转换成UTF-8。

echo mb_convert_encoding($return[Sheet2][0][0], ‘UTF-8′, ‘UTF-16LE’);

这样显示就正常了。

    总结:在我的测试过程中,建议用第一种方法,第二种方法把数字变成乱码了(不知道什么原因)。

let html9=` <!-- 第九个盒子 --> <div class="table-box" style="width: 90%; margin: 0 auto;"> <div style='font-size: 16px;line-height: 30px;'>`+val.is_tax_str+`&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`+val.is_invoice_str+`</div> <table style="width: 100%; border-collapse: collapse;page-break-inside: avoid;"> <thead style="display: table-header-group;"> <tr> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">设备名称</th> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">单位</th> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">数</th> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">单价</th> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">合价</th> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">系数</th> <th style="border: 1px solid #ccc; padding: 8px; text-align: center; font-size: 20px; background-color: #f2f2f2; font-weight: 500;">备注</th> </tr> </thead> <tbody style="display: table-row-group;"> ${val.qm_unit_arr.map(item => ` 是html代码导出怎么修改
最新发布
03-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值