如何从WordPress数据库中提取到MS Excel?

时间:2012-11-01 10:41:31

标签: php database wordpress export-to-excel

我正在尝试将数据添加到从wordpress数据库中提取的excel文件中,实际上我正在尝试将数据库中的数据(标签)导出到excel文件中。我写了一段代码,但是当我点击生成按钮时。这会生成空文件。

请大家检查一下我做错了什么。

代码如下:

if (check_admin_referer('tag-export')) 
{
    $blogname = str_replace(" ", "", get_option('blogname'));
    $date = date("m-d-Y");
    $xls_file_name = $blogname."-exported-tags-".$date;

    $tags = get_terms( 'post_tag' , 'hide_empty=0' );
    $count = count($tags);

    if ( $count > 0 )
    {
        echo 'name' . "\t" . 'slug' . "\n";

        foreach ( $tags as $tag ) 
        {
            echo $tag->name . "\t" . $tag->slug . "\n";
        }
    }

    ob_clean();
    echo $xls_file;

    header( "Content-Type: application/vnd.ms-excel" );
    header( "Content-disposition: attachment; filename=$xls_file_name.xls" );
    exit();
}

以上代码不会将数据写入excel文件。请检查并告诉我。

2 个答案:

答案 0 :(得分:1)

更一般的建议,而不是编码问题的解决方案:从代码创建HTML表格文件,然后在Excel中打开它进行转换。这样做可以让您更好地了解代码的内容:您可以添加var_dumps或者像普通网页一样调试它。

拥有一个html表也很有用,因为excel在将其转换为XLS文件方面效果很好。

HTML文件运行良好后,您可以对代码应用必要的格式/标题,以便从头开始创建xls文件。

答案 1 :(得分:1)

仅基于您现有的代码:

if (check_admin_referer('tag-export')) 
{
    $blogname = str_replace(" ", "", get_option('blogname'));
    $date = date("m-d-Y");
    $xls_file_name = $blogname."-exported-tags-".$date;

    $tags = get_terms( 'post_tag' , 'hide_empty=0' );
    $count = count($tags);

    $xls_file = '';
    if ( $count > 0 )
    {
        $xls_file .= 'name' . "\t" . 'slug' . "\n";

        foreach ( $tags as $tag ) 
        {
            $xls_file .= $tag->name . "\t" . $tag->slug . "\n";
        }
    }

    ob_clean();
    header( "Content-Type: application/vnd.ms-excel" );
    header( "Content-disposition: attachment; filename=$xls_file_name.xls" );

    echo $xls_file;

    exit();
}