为了账号安全,请及时绑定邮箱和手机立即绑定

用PHP将MySQL数据导出到Excel

用PHP将MySQL数据导出到Excel

冉冉说 2019-11-28 10:22:19
我正在尝试将MySQL数据保存到Excel文件,但是Excel单元格出现问题。我所有的文本都放在一个单元格中,我希望每个行值都在单独的Excel单元格中。这是我的代码:$queryexport = ("SELECT username,password,fullname FROM ecustomer_usersWHERE fk_customer='".$fk_customer."'");$row = mysql_fetch_assoc($queryexport);$result = mysql_query($queryexport);$header = '';for ($i = 0; $i < $count; $i++){   $header .= mysql_field_name($result, $i)."\t";   }while($row = mysql_fetch_row($result)){   $line = '';   foreach($row as $value){          if(!isset($value) || $value == ""){                 $value = "\t";          }else{                 $value = str_replace('"', '""', $value);                 $value = '"' . $value . '"' . "\t";                 }          $line .= $value;          }   $data .= trim($line)."\n";   $data = str_replace("\r", "", $data);if ($data == "") {   $data = "\nno matching records found\n";   }}header("Content-type: application/vnd.ms-excel; name='excel'");header("Content-Disposition: attachment; filename=exportfile.xls");header("Pragma: no-cache");header("Expires: 0");// output dataecho $header."\n".$data;mysql_close($conn);`
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

尝试以下方法:


PHP部分:


<?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";

    }   

?>

我认为这可以帮助您解决问题。


查看完整回答
反对 回复 2019-11-28
?
呼如林

TA贡献1798条经验 获得超3个赞

如果您只是想将查询数据转储到excel中,则必须经常这样做,并且使用html表是一种非常简单的方法。我使用mysqli进行数据库查询,并使用以下代码导出到excel:


header("Content-Type: application/xls");    

header("Content-Disposition: attachment; filename=filename.xls");  

header("Pragma: no-cache"); 

header("Expires: 0");



echo '<table border="1">';

//make the column headers what you want in whatever order you want

echo '<tr><th>Field Name 1</th><th>Field Name 2</th><th>Field Name 3</th></tr>';

//loop the query data to the table in same order as the headers

while ($row = mysqli_fetch_assoc($result)){

    echo "<tr><td>".$row['field1']."</td><td>".$row['field2']."</td><td>".$row['field3']."</td></tr>";

}

echo '</table>';


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 767 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信