<?php /** * @author Jceee */ class excel_tool { public static $readerObj; public static $charset = 'utf-8'; /** * 输出切换编码 */ public static function excelExportIconv($output){ return iconv(self::$charset, 'GBK', $output); } /** * 导出文件 * @param $fileName string * @param $title string * @param $firstRow array * 如:array('name'=>'名字', 'title' => '标题') 键名与后面的数组$data的子元素键名关联 * @param $data array */ public static function exportFile($fileName, $title = '', $firstRow = array(), $data = array()) { header('Content-Type: application/vnd.ms-execl'); header('Content-Disposition: attachment; filename=' . $fileName . '.xls'); header('Pragma: no-cache'); header('Expires: 0'); if (!empty($title)) { echo self::excelExportIconv($title) . "\t\n"; } /** * 第一行与后面的数据以键名关联 */ if (!empty($firstRow) && is_array($firstRow)) { //输出第一行内容 foreach ($firstRow as $first) { echo self::excelExportIconv($first) . "\t"; } echo "\n"; if (!empty($data) && is_array($data)) { foreach ($data as $item) { foreach ($firstRow as $_key => $_val) { if (isset($item[$_key])) { echo self::excelExportIconv($item[$_key]) . "\t"; } else { echo self::excelExportIconv('') . "\t"; } } echo "\n"; } } } else { if (!empty($data) && is_array($data)) { foreach ($data as $item) { foreach ($item as $val) { echo self::excelExportIconv($val) . "\t"; } echo "\n"; } echo "\n"; } } } } /** * example: */ $fileName = 'example'; $title = 'This is title'; $firstRow = array( 'id' => 'ID', 'name' => '名字', 'title' => '标题' ); $data = array( array('id' => 1, 'name' => '名字1', 'title' => '标题1'), array('id' => 2, 'name' => '名字2', 'title' => '标题2'), array('id' => 3, 'name' => '名字3', 'title' => '标题3'), array('id' => 4, 'name' => '名字4', 'title' => '标题4'), ); Excel_tool::exportFile($fileName,$title,$firstRow,$data); ?>