Exporting MySQL Data to Excel in PHP: Resolving Cell Aggregation
When exporting MySQL data to Excel using PHP, it's common to encounter issues where text is confined to a single cell. To resolve this, we need to ensure that each row value occupies its own cell.
The original code you provided attempts to export data by fetching row values using mysql_fetch_assoc and looping through them. However, this method returns an associative array, which means that all row values are stored in a single array element. To separate values into individual cells, we must use mysql_fetch_row instead.
Here's the modified portion of your code:
$result = mysql_query($queryexport); $header = ''; for ($i = 0; $i < mysql_num_fields($result); $i++) { $header .= mysql_field_name($result, $i) . "\t"; } while ($row = mysql_fetch_row($result)) { // Begin new line $line = ''; foreach ($row as $value) { if (!isset($value) || $value == '') { $value = "\t"; } else { $value = str_replace('"', '""', $value); $value = '"' . $value . '"' . "\t"; } $line .= $value; } // End line $data .= trim($line) . "\n"; $data = str_replace("\r", "", $data); }
By using mysql_fetch_row, we obtain an array where each element represents a column value. This allows us to append values to our Excel file row by row, resulting in each row containing its own unique set of values.
Remember to adjust the file headers and export filename as needed in your modified script.
The above is the detailed content of How to Prevent Cell Aggregation When Exporting MySQL Data to Excel using PHP?. For more information, please follow other related articles on the PHP Chinese website!