49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

再者数据中包蕴普通话.,PHP导出Excel乱码原因

2019-10-01 作者:计算机网络   |   浏览(104)

1、定义文件名

我在PHP项目里要求把数据导出为Excel,并且数据中包含中文.
网上大概了解一下可是使用PHPExcel,可是相对我的需求,这个框架太复杂了.于是还是想找找简单做法.
网上发现其实最简单可以这样写,但问题是这种做法中文的编码不可靠..

解决2个问题: 1.身份证之类的文本数据自动转为科学计数法的问题。
2.中文乱码的问题

2、填充Excel数据

复制代码 代码如下:

excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。 下面就列出常用的一些格式:

这两个过程中可能会出现一些PHP导出Excel乱码问题,下面我来说一下解决办法:

<?php
 header("Content-type:application/vnd.ms-excel");
 header("Content-Disposition:attachment;filename=export_data.xls");
 echo   "姓名"."t"; 
 echo   "繁體"."t"; 
 echo   "博客"."t"; 
 echo   "n"; 
 echo   "jason"."t"; 
 echo   "@"."t"; 
 echo   "javaeye"."t"; 
 ?>

1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数字:vnd.ms-excel.numberformat:#,##0.00
4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%

解决Excel内数据的PHP导出Excel乱码:

有些同学会想到header加入字符集

这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添 加到对应的标签对(即闭合标签)即可。如<td></td>,给标签对<td></td>添加样式,如 下: <td  style="vnd.ms-excel.numberformat:@">410522198402161833</td>
同样,我们也可以给<div></div>添加样式,也可以给<tr>< /tr>,<table></table>添加样式;当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现 呢?经过测试,会以离数据最近的样式呈现.

PHP导出Excel乱码原因:网页编码与Excel编码不一致。

复制代码 代码如下:

例如身份证列的<td>的样式:

解决办法:既然编码不一致,那让其一致了就OK了。定义Excel的字符集:

header("Content-type:application/vnd.ms-excel;charset=UTF-8");

echo "<td style='vnd.ms-excel.numberformat:@'>".$printable."</td>n";

 代码如下

问题: 这里只是告诉浏览器要选什么字符集查看,最终我的需求还是要生成xls文件. 当然.有些同学还会想到用iconv转码.

复制代码 代码如下:

header(“Content-Type: application/vnd.ms-excel; charset=UTF-8″)

复制代码 代码如下:

$filename=iconv("UTF-8", "GB2312//IGNORE","会员名.xls");//date('Y-m-d-H-i-s').".xls";
header("Content-type:application/vnd.ms-excel");
            Header("Accept-Ranges:bytes");
            Header("Content-Disposition:attachment;filename=".$filename); //$filename导出的文件名
            header("Pragma: no-cache");
            header("Expires: 0");

,看到charset=UTF-8了吧,让其与您网页编码一致即可解决Excel内数据乱码的问题了,这个比较简单!

echo iconv("当前编码","GB18030","此博客来源于javaeye,by jason");

echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns=";
 <head>
    <meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT">
    <meta http-equiv=Content-Type content="text/html; charset=gb2312">
    <!--[if gte mso 9]><xml>
    <x:ExcelWorkbook>
    <x:ExcelWorksheets>
      <x:ExcelWorksheet>
      <x:Name></x:Name>
      <x:WorksheetOptions>
        <x:DisplayGridlines/>
      </x:WorksheetOptions>
      </x:ExcelWorksheet>
    </x:ExcelWorksheets>
    </x:ExcelWorkbook>
    </xml><![endif]-->

附一个php导出Excel类

问题: 这样文件里的汉字编码就GB18030,可是Excel这么知道用什么编码打开呢?只能完全依赖OS默认.可是如果碰到繁体BIG5这么办,还是会乱码. 所以还是不靠谱. 最后我采用phpMyAdmin的做法.用HTMLExcel, HTML我们比较熟悉,格式如下.

</head>';
echo "<table><tr>
      <th>".iconv("UTF-8", "GB2312//IGNORE","会员名")."</th>
      <th>".iconv("UTF-8", "GB2312//IGNORE","账号")."</th>
      <th>".iconv("UTF-8", "GB2312//IGNORE","联系人")."</th>
</tr>";
            foreach ($list as $v)
            {
                 echo "<tr>";
                 echo "<td>".iconv("UTF-8", "GB2312//IGNORE", $v["user_name"])."</td>";
                 echo "<td style='vnd.ms-excel.numberformat:@'>".$v["account_id"]."</td>";
                 echo "<td>".iconv("UTF-8", "GB2312//IGNORE", $v["contact_name"])."</td>";
             echo "</tr>";
            }
            echo "</table>";

 代码如下

复制代码 代码如下:

您可能感兴趣的文章:

  • 基于PHP导出Excel的小经验 完美解决乱码问题
  • php导入导出excel实例
  • php中导出数据到excel时数字变为科学计数的解决方法
  • 基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
  • php将数据库导出成excel的方法
  • PHP导出MySQL数据到Excel文件(fputcsv)
  • PHP实现导出带样式的Excel
  • PHP使用PHPexcel导入导出数据的方法
  • PHP导入导出Excel代码
  • php中通用的excel导出方法实例

<?php
/*
 * Created on 2012-2-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table>
 <tr>
  <td colspan="4"><font color="red" align="center">class infomation</font></td>
 </tr>
 <tr>
  <td><?php echo iconv("UTF-8", "GBK", "编号"); ?></td>
  <td><?php echo iconv("UTF-8", "GBK", "姓名"); ?></td>
  <td><?php echo iconv("UTF-8", "GBK", "学号"); ?></td>
  <td><?php echo iconv("UTF-8", "GBK", "性别"); ?></td>
 </tr>
</table>

<html xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns=";
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";
 <html>
     <head>
        <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
         <style id="Classeur1_16681_49彩票集团,Styles"></style>
     </head>
     <body>
         <div id="Classeur1_16681" align=center x:publishsource="Excel">
             <table x:str border=0 cellpadding=0 cellspacing=0 width=100% style="border-collapse: collapse">
                 <tr><td class=xl2216681 nowrap>1234</td><td class=xl2216681 nowrap>Robbin会吐口水</td></tr>
                <tr><td class=xl2216681 nowrap>5678</td><td class=xl2216681 nowrap>javaeye网站</td></tr>
             </table>
         </div>
     </body>
 </html>

本文由49彩票集团发布于计算机网络,转载请注明出处:再者数据中包蕴普通话.,PHP导出Excel乱码原因

关键词: