2011-05-22 124 views
1

好吧,我開始去有點瘋狂...HTML表格到CSV或Excel

jQuery Table to CSV export

我看着那個線程。

它可以工作,但輸出不是通過HTML表格行來執行每行的所有操作。例如,我有一個地址,它是在一個HTML單元:

1234 Berryman Lane 
Atlanta, GA 12345 
Unit # 54A 

這將是三排時它輸出到Excel,而不是一個小區,在它的回報。

此外,有沒有辦法來剝離出的HTML是HTML細胞與解決方案裏面,因爲據我所知......

最後,Excel中打開該文件時會發出警告。


什麼我得到的是,我寧願只是有一些可以在HTML細胞最內部的數據(不包括電池的內部HTML),它抓取到CSV。這些日子裏有什麼能夠做到這一點?


UPDATE

好吧,我剛剛發現的最好的東西還在,這是非常完美的:

$table = 'myTable'; 
$file = 'exportFile'; 

$result = mysql_query("SHOW COLUMNS FROM ".$table.""); 
$i = 0; 
if (mysql_num_rows($result) > 0) { 
while ($row = mysql_fetch_assoc($result)) { 
$csv_output .= "\"" . $row['Field']."\","; 
$i++; 
} 
} 
$csv_output .= "\n"; 

$values = mysql_query("SELECT * FROM ".$table.""); 
while ($rowr = mysql_fetch_row($values)) { 
for ($j=0;$j<$i;$j++) { 
$csv_output .= "\"" . $rowr[$j]."\","; 
} 
$csv_output .= "\n"; 
} 

$filename = $file."_".date("Y-m-d_H-i",time()); 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 
print $csv_output; 
exit; 

我覺得這是我的老闆。它沒有問題的CSV文件,在Excel中加載沒有問題,這是我的夢想成真!

+0

你需要它是CSV還是任何Excel文件類型會做? – Rikal 2011-05-22 22:25:11

+0

要麼真的,但由於我與Excel的問題,我認爲CSV會更簡單? – Shackrock 2011-05-22 22:29:27

+0

你需要翻錄離線文件嗎?否則,爲什麼不看[Excel Web查詢](http://stackoverflow.com/questions/3660844/how-do-you-query-a-website-in-vb6/3660926#3660926)? – GSerg 2011-05-22 22:32:55

回答

0

感謝您的所有建議。正如我編輯的文章所述,這個腳本下面是一個很好的解決方案:

$table = 'myTable'; 
$file = 'exportFile'; 

$result = mysql_query("SHOW COLUMNS FROM ".$table.""); 
$i = 0; 
if (mysql_num_rows($result) > 0) { 
while ($row = mysql_fetch_assoc($result)) { 
$csv_output .= "\"" . $row['Field']."\","; 
$i++; 
} 
} 
$csv_output .= "\n"; 

$values = mysql_query("SELECT * FROM ".$table.""); 
while ($rowr = mysql_fetch_row($values)) { 
for ($j=0;$j<$i;$j++) { 
$csv_output .= "\"" . $rowr[$j]."\","; 
} 
$csv_output .= "\n"; 
} 

$filename = $file."_".date("Y-m-d_H-i",time()); 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 
print $csv_output; 
exit; 

我認爲這是我的守護者。它沒有問題的CSV文件,在Excel中加載沒有問題,這是我的夢想成真!

+0

我已經有了更好的經驗:http://www.kunalbabre.com/projects/table2CSV.php。或者一些更新的分支:https://github.com/ZachWick/TableCSVExport或https://github.com/rubo77/table2CSV – Shackrock 2013-10-31 09:12:39

1

好吧,你可以在excel中始終使用相同的標記,因爲如果使用.xls文件類型,呈現html表並將內容類型更改爲「application/vnd.ms-excel」,則可以呈現html該響應的文件名爲* .xls,您應該有一個可用的Excel表格。

"...","...","..." 

現在,你可以在數據逗號:

+0

這就是我上面提到的問題。它列出每個換行符作爲另一個單元格,這是不可接受的數據,因爲我試圖在Excel中稍後進行排序......我需要每個HTML CELL在Excel中成爲一個單元格。如有可能,減去任何HTML。 – Shackrock 2011-05-22 22:34:27

+0

嗯......我經常使用這種方法,你能給我一個樣品表嗎? – Rikal 2011-05-22 22:36:13

+0

是的,我怎麼發送給你? – Shackrock 2011-05-22 22:37:22

0

如果有數據沒有dobule報價,你可以讓你的數據看起來像包裝每個單元格的內容在雙引號。您可能還需要處理數據中的新行和退貨,可能最好將其完全移除,但這取決於您。