我創建了一個Web應用程序,我想補充像用戶功能可以將所選記錄導出...輸出記錄文件
Check Box Name Email
Sumit [email protected]
Karan [email protected]
我想這個記錄導出到Excel文件,但只有應該導出選定的記錄。
在此先感謝
我創建了一個Web應用程序,我想補充像用戶功能可以將所選記錄導出...輸出記錄文件
Check Box Name Email
Sumit [email protected]
Karan [email protected]
我想這個記錄導出到Excel文件,但只有應該導出選定的記錄。
在此先感謝
無需下載外部庫 - 您所需的所有內容都已內置到PHP中。
步驟:
SELECT * FROM table WHERE id IN (1,2,...)
mysql_fetch_array()
或mysql_fetch_assoc()
同時獲得行一個fputcsv()
將它們輸出到以csv結尾的文件 - 這將正確地逃脫您的數據http://www.php.net/manual/en/function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv.php
Excel將能夠讀取文件。
覆蓋缺省值fputcsv
以使用製表符作爲分隔符,Excel將更容易讀取文件。如果您使用逗號(默認),則可能需要在Excel導入中選擇逗號作爲分隔符。
這裏的工作的例子假設你已經有行設置:
$rows; // predefined
$filename = 'webdata_' . date('Ymd') . '.csv';
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/octet-stream");
// that indicates it is binary so the OS won't mess with the filename
// should work for all attachments, not just excel
$out = fopen("php://output", 'w'); // write directly to php output, not to a file
foreach($rows as $row)
{
fputcsv($out, $row);
}
fclose($out);
非常感謝你我會檢查它.. – SB24
在我多年的PHP中,我從來沒有真正使用fputcsv--通常是因爲我通常避免創建物理文件,但這也許是很好的解決方案。但是,我不認爲excel使用製表符會有問題,而不是逗號。它應該自動檢測分隔符,所以我不希望需要進行配置更改。但是,里程可能會有所不同。非常好的答案,但:-) – WhiskeyTangoFoxtrot
Excel使用標籤更好。有點奇怪,因爲csv代表逗號分隔值。看到這個例子,不需要先輸出到文件。直接輸出到php標準輸出。 – evan
您可以安裝和使用非常漂亮的PHP EXEL庫導入EXEL EXEL文件以及出口數據。
此處瞭解詳情: http://phpexcel.codeplex.com/
否則這個問題本身是一個比較含糊所以這就是我能說的。 :/
非常感謝您的信息 – SB24
如果您以CSV格式將數據發送到瀏覽器(例如,implode()將結果集數組中的每個條目與\ t分開並將每行與\ n分隔),Excel可以輕鬆地將其轉換爲可以使用的東西當文檔被加載時。
但是請注意,您必須告訴瀏覽器它正在加載的文檔是一個excel文件,因此它知道使用excel來加載文件。通過提供內容類型和內容處置頭,像這樣做:
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=exportExcel.xls");
請確保您撥打的報頭()函數您發送CSV'd文本之前。
注:我選擇\ t(製表符)分隔每個字段,而不是逗號,因爲在我的經驗,他們已經造成的問題,因爲它可能是常見的一個字段包含在它的逗號...但也許不在你的特定情況下。
作爲一個說明,這將不會有任何花哨的格式或表格裝箱。卡米爾的圖書館可能會提供。我的方法只是做一個簡單的直接導出。 – WhiskeyTangoFoxtrot
非常感謝你 – SB24
不客氣!歡迎來到stackoverflow - 請記住選擇好的答案以及接受的答案。 :-) – WhiskeyTangoFoxtrot
假設你的mysql數據庫是同一臺服務器上的虛擬主機上,那麼你就應該能夠使用「選擇INTO OUTFILE 「在mysql中的方法。 http://dev.mysql.com/doc/refman/5.1/en/select-into.html
您可以創建一個CSV文件中使用這種語法(在Excel將打開):
SELECT * FROM people INTO OUTFILE '/www/your/output/directory/output.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
然後你就可以讓人們使用這樣的PHP文件下載:
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=/www/your/output/directory/output.csv");
header("Pragma: no-cache");
header("Expires: 0");
這個最後一部分來自其他崗位 - >create csv file
您可以使用PHPExcel http://phpexcel.codeplex.com/,但您的問題是太位開放... – Molochdaa
可能重複的[導出mysql結果爲Excel](http://stackoverflow.com/questions/1475441/export-mysql-result-to-excel) – hakre
@hakre - 不要複製到該問題。這是針對特別複雜的腳本。 – evan