首页 > 解决方案 > 从 DATABASE 导出 XLS

问题描述

我使用以下代码成功导出 XLS,但 UTF-8 编码不起作用。我哪里做错了?当我打开 xls 文档时,我总是收到错误消息:格式和文件扩展名不一样...

$con = new mysqli($servername, $username, $password, $dbname);

$con -> set_charset("utf8");
if ($con->connect_error) {  //error check
    die("Connection failed: " . $con->connect_error);
}
else
{

}

$DB_TBLName = "form"; 
$filename = "export_dat";  //your_file_name
$file_ending = "xls";   //file_extention
$stav = $_GET['stav'];

header("Content-Type: application/xls; charset=UTF-8"); 
header('Content-Disposition: attachment; filename="export_dat.xls"');
header("Pragma: no-cache"); 
header("Expires: 0");

$sep = "\t";

$sql="SELECT pozadovanaCiastka, rodneCislo, meno, priezvisko, adresaObec, adresaUlica, adresaCislo, adresaPsc, email, telefon, pracovneZaradenie, zamestnanuOd, prijem1, prijem2, prijem3, poznamka FROM $DB_TBLName WHERE stav = '$stav'"; 
$resultt = $con->query($sql);
while ($property = mysqli_fetch_field($resultt)) { //fetch table field name
    echo $property->name."\t";
}

print("\n");    

while($row = mysqli_fetch_row($resultt))  //fetch_table_data
{
    $schema_insert = "";
    for($j=0; $j< mysqli_num_fields($resultt);$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";
}

标签: phpexportxls

解决方案


推荐阅读