• PHP输出excel CSV等文件


    <?php
    $fileName = "fileName";
    header("Content-Type:text/csv;charset=UTF-8"); //'text/csv'是CSV文件,'application/vnd.ms-excel'是excel文件
    header("Content-Disposition: attachment; filename=" . $fileName . ".csv"); //$fileName文件名,“.csv”文件扩展名也可是".xls"excel文件
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header('Pragma:public');
    
    echo "\n" . iconv("utf-8", "gbk", "大连,") . "\t" . iconv("utf-8", "gbk", "大连2");
    //echo就是输出内容到文件中,"\n"是换行,"\t"在excel文件里是换格,","在CSV文件里是换格
    
    //生成或补充CSV文件也可用如下方法
    $fileName = "test.csv";
    $file = fopen($fileName, 'a');//打开指定csv文件,没有则创建
    $fields = array( "txt11" ,  "txt21" , "txt31");
    fputcsv ( $file ,  $fields );//在打开的csv文件内容末尾另起一行,添加数组中内容,数组一个元素代表一个单元格
    $fields = array( "txt12" ,  "txt22" , "txt32");
    fputcsv ( $file ,  $fields );//再另起一行添加数组内容
    fclose ( $file );//关闭文件句柄
    
    
    
    //生成excel还有如下方法
    $filename = "导出数据表";
    $filename_type = 'xls';
    header ( "Content-Type: application/vnd.ms-excel" );
    Header ( "Accept-Ranges:bytes" );
    Header ( "Content-Disposition:attachment;filename=" . $filename . "." . $filename_type ); // $filename导出的文件名
    header ( "Pragma: no-cache" );
    header ( "Expires: 0" );
    echo '
        <html xmlns:o="urn:schemas-microsoft-com:office:office"
        xmlns:x="urn:schemas-microsoft-com:office:excel"
        xmlns="http://www.w3.org/TR/REC-html40">
        <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]-->
        </head>'
        ;
    
    echo "<table>";
    echo "
        <tr>
        <td>".iconv ( "utf-8", "gbk", "标题一 ")."</td>
        <td>".iconv ( "utf-8", "gbk", "标题二 ")."</td>
        <td>".iconv ( "utf-8", "gbk", "标题三")."</td>
        </tr>
        ";
    
    echo "
        <tr>
        <td>".iconv ( "utf-8", "gbk", '内容一' )."</td>
        <td style='vnd.ms-excel.numberformat:@'>12345678910123456</td>
        <td style='vnd.ms-excel.numberformat:yyyy-mm-dd'>2016/10/24</td>
        </tr>
        ";
    echo "</table>";
    exit ();
    //<td>即代表换格,<tr>代表换行
    //style='vnd.ms-excel.numberformat:@'表示避免将表格中长数字用科学计数显示
    //style='vnd.ms-excel.numberformat:yyyy-mm-dd' 表示将表格中内容按指定样式显示
  • 相关阅读:
    j.u.c系列(01) ---初探ThreadPoolExecutor线程池
    mySql---or和in的效率问题(和<=、>=、between之间的关系)
    spring---aop(10)---Spring AOP中AspectJ
    spring---aop(9)---Spring AOP中引入增强
    设计模式系列---适配器模式
    spring---aop(8)---Spring AOP中optimize
    spring---aop(7)---Spring AOP中expose-proxy介绍
    spring---aop(6)---Spring AOP中ProxyFactoryBean介绍
    spring---aop(5)---Spring AOP的配置的背后的配置
    spring---aop(4)---Spring AOP的CGLIB动态代理
  • 原文地址:https://www.cnblogs.com/dreamhome/p/2410775.html
Copyright © 2020-2023  润新知