1

好吧,我开始有点疯狂了……

jQuery 表到 CSV 导出

我正在看那个线程。

它确实有效,但输出按每行而不是按 HTML 表行执行所有操作。例如,我有一个位于一个 HTML 单元格中的地址:

1234 Berryman Lane
Atlanta, GA 12345
Unit # 54A

当它输出到 excel 时,这将是三行,而不是一个单元格,其中包含返回。

此外,据我所知,没有办法用该解决方案去除 HTML 单元格内部的 HTML...

最后,Excel 在打开该文件时会发出警告。


我的意思是,我宁愿拥有一些可以获取 HTML 单元格中最内部的数据(不包括单元格内的 HTML)的东西,并将其撕成 CSV。这些天有什么做得很好的吗?


更新

好吧,我刚刚找到了最好的东西,这非常完美:

$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 中加载没有问题,这是我的梦想成真!

4

3 回答 3

1

好吧,您始终可以在 excel 中使用相同的标记,因为如果您使用 .xls 文件类型,它可以呈现 html,呈现 html 表并将内容类型更改为“application/vnd.ms-excel”指定该响应的文件名作为 *.xls ,你应该有一个可用的 Excel 表。

于 2011-05-22T22:32:55.230 回答
0

如果数据中没有双引号,您可以将每个单元格的内容用双引号括起来,这样您的数据如下所示:

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

现在您可以在数据中使用逗号。您可能还需要处理数据中的新行和返回,最好完全删除它们,但这取决于您。

于 2011-05-22T22:55:00.160 回答
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 中加载没有问题,这是我的梦想成真!

于 2011-10-01T00:14:15.970 回答