2011-10-26 18 views
1

ギリシャ文字を含むxlsファイルを作成するために、以下のヘッダーを使用しました。ギリシャ文字でexcelを作成する

最初の試み

header("Content-Type: application/$file_type;charset=utf-8"); 
header("Content-Disposition: attachment; filename=$file_name.$file_ending"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

第二の試み

header("Content-Type: application/$file_type;charset=windows-1253"); 
header("Content-Disposition: attachment; filename=$file_name.$file_ending"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

作成したファイルalthought私がそれを開いたとき、それは(テキストエディタで表示)正しいギリシャ語の文字が含まれていますms-excelギリシャ文字はsympolsとして表示されます。

私は同じ結果を持つxls(xlsバイナリ形式を開く)を作成するライブラリも試しました。このライブラリには、コードページと文字セットを設定するオプションがありますが、何もありません。

ありがとうございました。

答えて

1

としてUTF-16エンコーディング(BOM付き)と、タブを使用しますライブラリであれば、エンコーディングをUTF-8に設定する関数が必要です。たとえば、PEARのSpreadsheet_Excel_Writer(http://pear.php.net/package/Spreadsheet_Excel_Writer/redirected)で、あなたはどうなる:もちろん

<?php 
    $workSheet = & $workBook -> addWorksheet('Students'); 
    $workSheet -> setInputEncoding('utf-8'); 
?> 

は、また、あなたのデータが実際にUTF-ていることを確認する必要があります例えば、ISO-8859-7またはwindows-1253ではない。 これはブック名の変更をサポートしていないことに注意してください(つまり、「学生」ではなく「Μαθητές」を使用してください)

+0

ありがとうございます@periklis、私は別のライブラリを使用しています。私はいつもutf-8を使用しています – reven

0

私はXLSファイルについてとてもよく分からないが、あなたは、むしろエクセル読めるCSVファイルを使用したい場合は、使用している場合は、セパレータ

header('Content-Description: File Transfer'); 
header('Content-Type: text/csv'); 
header('Content-Disposition: attachment; filename=export.csv'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 

echo chr(255) . chr(254); // Add UTF-16 little-endian BOM 

echo mb_convert_encoding("α\tβ\tγ"), 'UTF-16LE', 'UTF-8'); // from UTF-8 to UTF-16 
関連する問題