php - 从 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";
}
解决方案
推荐阅读
- azure - 在 Databricks Jobs API 中传递 JVM 参数
- c# - LinQ 访问相互比较的项目
- firebase - 在 2020 年 3 月 1 日之前切换到 Play Referrer API -Google Play
- python - Openpyxl 读取错误的 xslx 文件
- css - CSS - 空白和 webkit-line-clamp 之间的问题
- java - 在 JOOQ 和 MySQL 中,与选择的几列不同
- angular - Angular 不能使用日期选择器
- c# - 从 JSON 文件中读取数据
- c++ - 将 GTKMM 与 Visual Studio 2019 一起使用
- c# - EntityFramework Core 3 和 Automapper。包含在过滤器中