1

よし、ちょっと頭おかしくなってきた…

jQuery テーブルから CSV へのエクスポート

私はそのスレッドを見ています。

それは機能しますが、出力は HTML テーブルの行ではなく、各 LINE によってすべて行われます。たとえば、1 つの HTML セルに住所があります。

1234 Berryman Lane
Atlanta, GA 12345
Unit # 54A

Excelに出力すると、1つのセルではなく3つの行になり、そこに戻ります。

さらに、私の知る限り、そのソリューションで 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

.xls ファイル タイプを使用し、html テーブルをレンダリングして、コンテンツ タイプを「application/vnd.ms-excel」に変更すると、html をレンダリングできるため、Excel で同じマークアップをいつでも使用できます。その応答のファイル名を指定します。 *.xls として、使用可能な Excel シートが必要です。

于 2011-05-22T22:32:55.230 に答える
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 に答える
0

データに二重引用符がない場合、各セルの内容を二重引用符で囲むと、データは次のようになります。

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

これで、データにコンマを含めることができます。また、データ内の新しい行と改行を処理する必要がある場合もあります。おそらくそれらを完全に削除するのが最善ですが、それはあなた次第です。

于 2011-05-22T22:55:00.160 に答える