通过php将MYSQL数据导出到Excel/CSV

Mer*_*gin 6 php mysql database excel

我想通过PHP将MYSQL数据导出到Excel/CSV.这样我以后可以使用我的数据库,或者有人可以使用和理解它.

Erw*_*ter 16

要使用适合EXCEL的语法创建.CSV文件,您可以使用基本SQL:

SELECT * FROM mytable
INTO OUTFILE '/mytable.csv'
FIELDS ESCAPED BY '""'
TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
Run Code Online (Sandbox Code Playgroud)

请参阅此处的手册.


Kas*_*ncz 9

我在谷歌搜索了这么多,但唯一的简单和工作的代码是下面的代码.创建一个downloadxls.php文件(或将其命名为whatever.php),复制/粘贴下面的代码,在代码的开头填写主机,用户名,密码,数据库和表格部分,并且你有一个非常好的工作代码.然后在浏览器中加载php文件,下载xls文件.我试过了,我正在使用它.

祝一切顺利 :)

    <?php
// Author: Linmic, email: linmicya@gmail.com

$host = ""; // your db host (ip/dn)
$user = ""; // your db's privileged user account
$password = ""; // and it's password
$db_name = ""; // db name
$tbl_name = ""; // table name of the selected db

$link = mysql_connect ($host, $user, $password) or die('Could not connect: ' . mysql_error());
mysql_select_db($db_name) or die('Could not select database');

$select = "SELECT * FROM `".$tbl_name."`";

mysql_query('SET NAMES utf8;');
$export = mysql_query($select); 
//$fields = mysql_num_rows($export); // thanks to Eric
$fields = mysql_num_fields($export); // by KAOSFORGE
$col_title="";
$data="";
for ($i = 0; $i < $fields; $i++) {
    $col_title .= '<Cell ss:StyleID="2"><Data ss:Type="String">'.mysql_field_name($export, $i).'</Data></Cell>';
}

$col_title = '<Row>'.$col_title.'</Row>';

while($row = mysql_fetch_row($export)) {
    $line = '';
    foreach($row as $value) {
        if ((!isset($value)) OR ($value == "")) {
            $value = '<Cell ss:StyleID="1"><Data ss:Type="String"></Data></Cell>\t';
        } else {
            $value = str_replace('"', '', $value);
            $value = '<Cell ss:StyleID="1"><Data ss:Type="String">' . $value . '</Data></Cell>\t';
        }
        $line .= $value;
    }
    $data .= trim("<Row>".$line."</Row>")."\n";
}

$data = str_replace("\r","",$data);

header("Content-Type: application/vnd.ms-excel;");
header("Content-Disposition: attachment; filename=export.xls");
header("Pragma: no-cache");
header("Expires: 0");

$xls_header = '<?xml version="1.0" encoding="utf-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author></Author>
<LastAuthor></LastAuthor>
<Company></Company>
</DocumentProperties>
<Styles>
<Style ss:ID="1">
<Alignment ss:Horizontal="Left"/>
</Style>
<Style ss:ID="2">
<Alignment ss:Horizontal="Left"/>
<Font ss:Bold="1"/>
</Style>

</Styles>
<Worksheet ss:Name="Export">
<Table>';

$xls_footer = '</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<Selected/>
<FreezePanes/>
<FrozenNoSplit/>
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>1</TopRowBottomPane>
</WorksheetOptions>
</Worksheet>
</Workbook>';

print $xls_header.$col_title.$data.$xls_footer;
exit;

?>
Run Code Online (Sandbox Code Playgroud)


Can*_*lan 6

我想这就是你要找的东西

您可以通过检查以下地址来创建自己的文件:http://www.programmingfacts.com/export-mysql-data-into-excelcsv-via-php/

我不能在这里添加工作代码......是错误的= /

但要将\ t设为\ t,将所有\\n设为\n