php - 使用php将mysqli数据导出到excel时,所有字段都显示在一列中
问题描述
我编写了一个简单的 php 脚本来下载 excel 文件,其中包含一些通过 MySQLI 查询获取的 MySQLI 数据,当我使用英语数据时它工作正常,但是当我使用 utf 8 语言(如阿拉伯语)时,它显示所有数据在一个excel文件中的列,
这是代码,任何帮助将不胜感激。
<?php
$conn = new mysqli('localhost', 'root', '');
mysqli_select_db($conn, 'test_db');
mysqli_query($conn, "set names 'utf8'");
setlocale(LC_ALL, 'en_US.UTF-8');
$sql = "SELECT `user_name`,`user_q1`,`user_q2`,
`user_q3`,`user_q4`,`user_q5`
FROM `usertable`";
$setRec = mysqli_query($conn, $sql);
$columnHeader = '';
$columnHeader = "الاسم" . "\t" . "الاجابة 1" . "\t" . "الاجابة 2" . "\t". "الاجابة 3" . "\t". "الاجابة 4" . "\t". "الاجابة 5" . "\t";
$setData = '';
while ($rec = mysqli_fetch_row($setRec)) {
$rowData = '';
foreach ($rec as $value) {
$value = '"' . $value . '"' . "\t";
$rowData .= $value;
}
$setData .= trim($rowData) . "\n";
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=User_Detail.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo ucwords($columnHeader) . "\n" . $setData . "\n";
?>
解决方案
推荐阅读
- wordpress - 在 Wordpress 中实现 JSX
- sql - SQL AND 查看是否在两个不同的表中设置了两个标志?
- java - 存储在自动化执行期间使用的 sql 查询的最佳方法是什么
- python - 如何使用 SQLAlchemy 设置和获取关系记录?
- wagtail - Wagtail API v2.4 - 如何在 API 中显示/获取图像的根 URL
- python-3.x - 将 pypng 转换为 numpy 数组
- python-3.x - Jinja2 给出关于从容器中导入 ABC 的 DeprecationWarning
- django - Django 2 按类别显示帖子
- reactjs - React:订阅 redux 存储更改的组件
- java - Mockito:如何模拟通用方法的 doAnswer