-1

このソリューションを適用して、ファイルを.CSVとExcelにエクスポートする際のエンコードの問題を解決しましたが、正常に機能しましたが、別の問題が発生しました。

PHPでExcelファイルの区切り文字として使用するタブ( "\ t")が機能しなくなりました。前の問題を解決する前に機能していました。Excelファイルを開くと、次のように表示されます。

「ColumnAColumbBColumnC」(すべて一緒に)。

csvのようにエクスポートする場合('Content-type: text/csv; charset=UTF-8')成功しましたが、Excel(Content-type: application/vnd.ms-excel; charset=UTF-8)としてはできません。

これに対する解決策はありますか?

注:一部のフィールドに「、」が含まれる値があるため、区切り文字として「、」を使用することは適切な解決策ではありません。

4

2 に答える 2

9

PHPでExcelファイルの区切り文字として使用するタブ( "\ t")が機能しなくなりました。

はい、その通りです。

それにもかかわらず、Excelにエクスポートする簡単な方法があります。

<td>とでテーブルを使用します<tr>。これは問題ありません。

例:

<?php
    header("Content-Type: text/plain");
    echo "<table border='1'>";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>First Name</th>";
    echo "<th>Department</th>";
    echo "<th>Date</th>";
    echo "<th>Topic</th>";
    echo "<th>State</th>";
    echo "<th>E-mail</th>";
    echo "<th>Place</th>";
    echo "<th>Registration fee</th>";
    echo '</tr>';
    echo '</table>';
    header("Content-disposition: attachment; filename=example_export_to_excel.xls");
    }
?>

これは、Excelへのエクスポートに最適です。ライブラリは必要ありません。複雑なものをできるだけ単純に見えるのはなぜですか。

于 2014-03-26T12:41:34.987 に答える
2

文字列フィールドにカンマがあり、カンマを区切り文字として使用する場合は、文字列を引用符で囲みます...これがCSVファイルの動作方法です。

したがって、PHPの組み込みのfputcsv()関数を使用してcsvファイルを作成していないと仮定します。そうでない場合は、これをすでに知っているはずです...使用することを検討してみてください。これは、あなたが行う小さな複雑さをすべて処理するからです。気づいていないようです。

Excel csvファイルはタブを使用し、通常はUTF-8ではなくBOMを使用してUTF-16LEとしてエンコードされることに注意してください。また、コンテンツタイプヘッダーで文字セットを識別する必要はありません。

于 2012-10-18T22:48:09.737 に答える