gpt4 book ai didi

php - mysql数据导出到excel时出现错误信息

转载 作者:行者123 更新时间:2023-11-29 11:48:35 25 4
gpt4 key购买 nike

<?php
/*******EDIT LINES 3-8*******/
$DB_Server = "localhost"; //MySQL Server
$DB_Username = "username"; //MySQL Username
$DB_Password = "password"; //MySQL Password
$DB_DBName = "databasename"; //MySQL Database Name
$DB_TBLName = "tablename"; //MySQL Table Name
$filename = "excelfilename"; //File Name
/*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/
//create MySQL connection
$sql = "Select * from $DB_TBLName";
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
//select database
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());
//execute query
$result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());
$file_ending = "xls";
//header info for browser
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");
/*******Start of Formatting for Excel*******/
//define separator (defines columns in excel & tabs in word)
$sep = "\t"; //tabbed character
//start of printing column names as names of MySQL fields
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
//end of printing column names
//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";
}
?>

我尝试使用上面的彼得代码。数据导出良好,但抛出以下错误消息:

The file format and extension of 'database.xls' don't match. The file could be corrupted or unsafe. Unless you trust its source don't open it. Do you want to open it anyway?

我尝试过使用不同的文件扩展名,但无法修复它。

最佳答案

错误的原因是您正在创建一个文本文件,其中字段由制表符分隔,而不是 Excel 文件。

只需更改行:

header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");

与:

header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=$filename.txt");

或者,或者:

header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=$filename.csv");

然后您也可以从 Excel 打开此文件。

关于php - mysql数据导出到excel时出现错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com