MySQL データが Excel のセル内で正しく配置されておらず、複数の行がある場合のデータが 1 つのセルに収まってしまいます。これを解決する方法は次のとおりです。問題:
複数の行を正しく処理するには、提供された PHP スクリプトをいくつか変更する必要があります。修正されたコードは次のとおりです:
<?php // Database connection details $DB_Server = "localhost"; $DB_Username = "username"; $DB_Password = "password"; $DB_DBName = "databasename"; $DB_TBLName = "tablename"; $filename = "exportfile"; // File name // Create MySQL connection $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL: " . mysql_error() . "<br>" . mysql_errno()); // Select database $Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database: " . mysql_error() . "<br>" . mysql_errno()); // Execute query $sql = "SELECT username, password, fullname FROM ecustomer_users WHERE fk_customer='$fk_customer'"; $result = @mysql_query($sql, $Connect) or die("Couldn't execute query: " . mysql_error() . "<br>" . mysql_errno()); // Header info for browser header("Content-Type: application/xls"); header("Content-Disposition: attachment; filename=$filename.xls"); header("Pragma: no-cache"); header("Expires: 0"); // Start formatting for Excel $sep = "\t"; // Tabbed character // Print column names for ($i = 0; $i < mysql_num_fields($result); $i++) { echo mysql_field_name($result, $i) . $sep; } echo "\n"; // Start while loop to get data while ($row = mysql_fetch_row($result)) { $schema_insert = ""; for ($j = 0; $j < mysql_num_fields($result); $j++) { if (!isset($row[$j])) { $schema_insert .= "NULL" . $sep; } elseif ($row[$j] != "") { $schema_insert .= "$row[$j]" . $sep; } else { $schema_insert .= "" . $sep; } } $schema_insert = str_replace($sep . "$", "", $schema_insert); $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); $schema_insert .= "\t"; print(trim($schema_insert)); print "\n"; } mysql_close($Connect);
以上がPHP を使用して Excel にエクスポートするときに MySQL データの配置の問題を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。