ユーザー登録とその詳細などを受け入れるデータベースをセットアップしています。phpを使用してデータベースをExcelファイルにエクスポートしようとしています。
私が抱えている問題は、一部の参加者がトルコ語などの外国語の文字を入力したことです。これはデータベースに「間違って」書き込まれています。作る。
データベースを Excel にエクスポートするコードを作成しましたが (以下)、データのエンコード方法に関係なく、Excel ドキュメントを正しく表示できません。
<?php
require_once('../php/db.php');
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=Download.xls");
header("Pragma: no-cache");
header("Expires: 0");
$query = "SELECT * FROM users";
$result = mysqli_query($link, $query);
if($result) {
$count = mysqli_num_rows($result);
for($i=0; $i<$count; $i++) {
$field = mysqli_fetch_field($result);
$header .= $field->name."\t";
while($row = mysqli_fetch_row($result)) {
$line = '';
foreach($row as $value) {
if((!isset($value)) OR ($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 = "\n(0) Records Found!\n";
}
}
print mb_convert_encoding("$header\n$data", 'UTF-16LE', 'UTF-8');
} else die(mysqli_error());
?>
これを行うと、Excel がファイルの種類を認識しないというエラーが表示されます。ドキュメントは開きますが、書き込もうとしたすべてのトルコ語文字の周りにボックスが表示されます。
私は PHP の専門家ではありません。これは、私がまとめた情報にすぎません。
誰か手を貸してくれませんか?
とても有難い
モズ