Січ 052013
Export(Экспорт) MySQL в Excel реализация на PHP
Однажды мне понадобилось записать данные из базы данных MySQL в Microsoft Excel используя PHP скрипт.
Сейчас я продемонстрирую вам код который в дальнейшем поможет Вам.
<?php mysql_connect(“localhost”,”root”,”root”); mysql_select_db(“employee”); $qry_data=mysql_query(“SELECT * FROM personal ORDER BY nip”); function xlsBOF() { echo pack(“ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0); return; } function xlsEOF() { echo pack(“ss”, 0x0A, 0×00); return; } function xlsBuatBaris($data, $Col, $Value) { echo pack(“sssss”, 0×203, 14, $data, $Col, 0×0); echo pack(“d”, $Value); return; } function xlsBuatLabel($data, $Col, $Value ) { $L = strlen($Value); echo pack(“ssssss”, 0×204, 8 + $L, $data, $Col, 0×0, $L); echo $Value; return; } 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=employee.xls “); header(“Content-Transfer-Encoding: binary “); xlsBOF(); xlsBuatLabel(0,0,”DAFTAR DATA PRIBADI”); xlsBuatLabel(2,0,”NIP”); xlsBuatLabel(2,1,”NAMA”); xlsBuatLabel(2,2,”ALAMAT”); xlsBuatLabel(2,3,”KELAMIN”); xlsBuatLabel(2,4,”TGL LAHIR”); $xlsRow = 3; while($data=mysql_fetch_array($qry_data)){ xlsBuatBaris($xlsRow,0,$data['nip']); xlsBuatLabel($xlsRow,1,$data['nama']); xlsBuatLabel($xlsRow,2,$data['alamat']); xlsBuatLabel($xlsRow,3,$data['kelamin']); xlsBuatLabel($xlsRow,4,$data['tgl_lahir']); $xlsRow++; } xlsEOF(); exit(); ?>
Большое спасибо! Весь день искал и только эта версия полностью корректно заработала. Но при копировании кода буфером нужно ковычки подправить, в цифрах формата 0х00 поправить “х” и в строке 30 убрать лишнюю “;”