2012-11-01 22 views
0

我想將數據添加到從wordpress數據庫提取的excel文件中,實際上我試圖從數據庫導出數據(標籤)到excel文件中。我寫下了一個代碼,但是當我點擊生成按鈕時。這會生成空文件。如何從WordPress數據庫提取到MS 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文件。請檢查並讓我知道。

+0

您呼應$ xls_file,但我不能看到你填充這個變量? – wgcrouch

+1

我不熟悉PHP中的xls格式生成,但我建議簡單地將文件保存爲.csv文件,這可以在任何電子表格軟件中打開。 – 2012-11-01 10:46:00

+0

在**標題前回顯**? –

回答

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(); 
} 
+0

非常感謝,我只是很沮喪,我做錯了。 – Muzzy

1

一個更一般的建議,而不是解決您的編碼問題:從代碼創建一個HTML表格文件,然後在Excel中打開它進行轉換。這樣做可以讓你更好地理解你的代碼是怎麼回事:你可以添加var_dumps或簡單地調試它,就像正常的網頁一樣。

擁有一個html表格也很有用,因爲excel在將其轉換爲XLS文件方面效果很好。

在您的HTML文件運行良好後,您可以將必要的格式/標頭應用於代碼以便從頭開始創建xls文件。

+0

沒關係,讓我這樣做,並更新代碼。 – Muzzy

+1

假設這不是你將自動化或定期執行的事情,這是一個很好的解決方案! – Chris