首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MySQL生成到Excel

问用MySQL生成到Excel
EN

Stack Overflow用户
提问于 2010-04-26 12:59:18
回答 7查看 7.6K关注 0票数 2
代码语言:javascript
复制
<?php
    // DB Connection here
    mysql_connect("localhost","root","");
    mysql_select_db("hitnrunf_db");

    $select = "SELECT * FROM jos_users ";
    $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );
    $fields = mysql_num_fields ( $export );

    for ( $i = 0; $i < $fields; $i++ )
    {
        $header .= mysql_field_name( $export , $i ) . "\t";
    }

    while( $row = mysql_fetch_row( $export ) )
    {
        $line = '';
        foreach( $row as $value )
        {
            if ( ( !isset( $value ) ) || ( $value == "" ) )
            {
                $value = "\t";
            }
            else
            {
                $value = str_replace( '"' , '""' , $value );
                $value = '"' . $value . '"' . "\t";
            }
            $line .= $value;
        }
        $data .= trim( $line ) . "\n";
    }
    $data = str_replace( "\r" , "" , $data );

    if ( $data == "" )
    {
        $data = "\n(0) Records Found!\n";
    }

    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=your_desired_name.xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    print "$header\n$data";
?>

上面的代码用于从MySQL数据库生成Excel电子表格,但是我们得到了以下错误:

您要打开的文件'users.xls‘与文件扩展名指定的格式不同。在打开该文件之前,请验证该文件未损坏,并且来自可信来源。现在要打开文件吗?

问题是什么,我们如何解决?

EN

回答 7

Stack Overflow用户

发布于 2010-04-26 16:01:31

您并不是真正生成Excel文件。使用选项卡作为分隔符,生成相当于.csv文件的内容。

若要生成“真实的”Excel文件,请使用PHPExcel。

票数 5
EN

Stack Overflow用户

发布于 2010-04-26 13:28:31

问题是,当Excel看到以.xls结尾的文件时,它希望该文件符合其BIFF标准。您的代码不生成符合BIFF的文件。如果您愿意,我可以为您提供生成符合BIFF的文件的PHP函数,但是在这里发布太长了。

票数 1
EN

Stack Overflow用户

发布于 2010-04-26 13:29:27

您似乎正在生成一个带有选项卡分隔字段的文件,并且在标题中声明这是与二进制Excel电子表格使用的格式相同的格式。这不是Excel使用的格式。加载电子表格的程序让你知道你在误导别人--可能只是你自己。

您可能应该考虑使用导出格式,如CSV文件;从制表符分隔到逗号分隔的转换并不困难。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2713562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档