Microsoft SQL Server 2008データベースからExcelスプレッドシートにデータをエクスポートしようとしました。 がhttp://www.appservnetwork.com/modules.php?name=News&file=article&sid=8ExcelへのPHPのエクスポート結果が間違った形式と不要な記号になる
私のヘッダーは次のようになります:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=$filename.xls ");
header("Content-Transfer-Encoding: binary ");
XLSデータセルは次のようになります。
xlsBOF();
xlsWriteString(0,0,"$lng_report_age_title");
xlsWriteString(0,4,"$lng_report_sex_title");
xlsWriteString(0,6,"$lng_report_referredfrom_title");
xlsWriteString(0,8,"$lng_report_selfreferred_title");
xlsWriteString(1,0,"$lng_report_age04");
xlsWriteString(1,1,"$lng_report_age514");
xlsWriteString(1,2,"$lng_report_age1549");
xlsWriteString(1,3,"$lng_report_age50");
xlsWriteString(1,4,"$lng_report_sexm");
xlsWriteString(1,5,"$lng_report_sexf");
xlsWriteString(1,6,"$lng_report_referredfrom_indistrict");
xlsWriteString(1,7,"$lng_report_referredfrom_outdistrict");
xlsWriteString(1,8,"$lng_report_selfreferred_indistrict");
xlsWriteString(1,10,"$lng_report_selfreferred_outdistrict");
xlsWriteString(2,6,"$lng_report_referredfrom_new");
xlsWriteString(2,7,"$lng_report_referredfrom_new");
xlsWriteString(2,8,"$lng_report_selfreferred_new");
xlsWriteString(2,9,"$lng_report_selfreferred_old");
xlsWriteString(2,10,"$lng_report_selfreferred_new");
xlsWriteString(2,11,"$lng_report_selfreferred_old");
xlsWriteNumber(3,0,"$searchresultsage04");
xlsWriteNumber(3,1,"$searchresultsage514");
xlsWriteNumber(3,2,"$searchresultsage1549");
xlsWriteNumber(3,3,"$searchresultsage50");
xlsWriteNumber(3,4,"$searchresultssexm");
xlsWriteNumber(3,5,"$searchresultssexf");
xlsWriteNumber(3,6,"$searchresultsreferredfrom01");
xlsWriteNumber(3,7,"$searchresultsreferredfrom02");
xlsWriteNumber(3,8,"$searchresultsselfreferred03");
xlsWriteNumber(3,9,"$searchresultsselfreferred04");
xlsWriteNumber(3,10,"$searchresultsselfreferred05");
xlsWriteNumber(3,11,"$searchresultsselfreferred06");
xlsEOF();
exit();
そして、作成XLS機能が見える
私はこのチュートリアルを使用していますこのように:
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
function xlsWriteString($Row , $Col , $Value) {
$L = strlen($Value);
echo pack("sssss" , 0x204 , 8 + $L , $Row , $Col , 0x0 , $L);
echo $Value;
return;
}
問題Nr。 1: Excelシートには、表示したいテキストの周りにいくつかの不要な特殊文字があります(おそらく私はUTF-8を使用しているためでしょうか?(最初に文字列をutf8_decodeしようとしましたが、 Excel 2007を使用していますか?)
問題Nr。 2: 値は行/列に書き込まれません。
結果は次のようになります(特別な文字は、stackoverflowエディタによって自動的に削除されるため、Xで置き換えます)。
XXXXXXXAgeXXXXXSexXXXX
呼ばFromXXXX
自己ReferredXXX 0-4 YearsXXX
5-14 YearsXXXX 15-49 YearsXXX X
= 50 YearsXXX XXMaleXXX XXFemaleXXXX XXIn DistrictXXX XXOut DistrictXXXX XXIn DistrictXXX
XOUT DistrictXXXXXXNewXXXXXXNewXXXXXXNewXXXXXOldXXXX
XNewXXXXXXOldXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXX
すべてこのデータは、列Aにと行1-8にあります。
もう一度、私が知っておきたいことは、いったん動作したら: どのようにしてセル(罫線、フォントなど)をフォーマットできますか?
ありがとうございます。
PHPExcelは、正しく構造化された有効なデータをPHPから取得する唯一の論理的な方法です。そして、それは.pdfのための輸出でも大丈夫です。 – bpeterson76