那么excel 2003可以打开csv文件,如果分隔符是tab,它可以自动将数据转换为正确的列 .
那么问题在于不是ascii的字符 . libreoffice打开用于选择charset的对话框,但excel 2003没有,并将字符导入错误的字符集 .
<?php
$filename ="excelreport.xls";
$contents1 = "Name \t Location (where from) \t Age \t \n";
$contents = "testdata1 \t testdata2 \t testdata3 \t \n";
$problematicData = array('ä', 'ö', 'õ', 'ü');
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
echo $contents1;
echo $contents;
echo implode(" \t ", $problematicData);
//编辑我发现修复程序添加了此 Headers ('Content-type:application / ms-excel; charset = utf-8; encoding = utf-8');但我没有用excel 2003测试它 .
1 回答
尝试使用逗号代替? PHP有一个fputcsv函数,可以轻松处理