<?php
// -------------------------------excel表格下載----------------------------------
excel下載:
github https://github.com/PHPOffice/PHPExcel
使用 Classes 目錄引入
推薦示例:
http://www.oschina.net/code/snippet_112754_15765
https://jingyan.baidu.com/article/915fc414f4c2e451384b205c.html
getExcel('excel', [
'學號', '姓名', '性別', '年齡', '班級'
], [
['1', '小,,,,ssss,,www,王', '男', '20', '100'],
['2', '小李', '男', '20', '101'],
['3', '小張', '女', '20', '102'],
['4', '小趙', '女', '20', '103']
]);
/**
* excel 下載:github https://github.com/PHPOffice/PHPExcel
* 示例:http://www.oschina.net/code/snippet_112754_15765
* @param $fileName string 文件名
* @param $headArr array 標題
* @param $data array 數據
*/
function getExcel($fileName = 'excel', $headArr, $data)
{
// 配置
error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('PRC');
$excel_dir = $_SERVER['DOCUMENT_ROOT'] . '/Classes/';// 根目錄(實際環境中注意修改目錄)
// 默認加載無需修改
include $excel_dir . 'PHPExcel.php';
require_once $excel_dir . 'PHPExcel/Reader/Excel2007.php';
require_once $excel_dir . 'PHPExcel/Reader/Excel5.php';
include_once $excel_dir . 'PHPExcel/IOFactory.php';
if (empty($data) || !is_array($data)) {
die("data must be a array");
}
if (empty($fileName)) {
exit;
}
//創建新的PHPExcel對象
$objPHPExcel = new PHPExcel();
$objProps = $objPHPExcel->getProperties();
//設置表頭
$key = ord("A");
foreach ($headArr as $v) {
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($data as $key => $rows) { //行寫入
$span = ord("A");
foreach ($rows as $keyName => $value) {// 列寫入
$j = chr($span);
$objActSheet->setCellValue($j . $column, $value);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName . '.xlsx');
//重命名錶
$objPHPExcel->getActiveSheet()->setTitle('Simple');
//設置活動單指數到第一個表,所以Excel打開這是第一個表
$objPHPExcel->setActiveSheetIndex(0);
//將輸出重定向到一個客戶端web瀏覽器(Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; filename=\"$fileName\"");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output'); //文件通過瀏覽器下載
// $objWriter->save($fileName); //腳本方式運行,保存在當前目錄
exit;
}
excel('學生excel下載', [
'學號', '姓名', '性別', '年齡', '班級'
], [
['1', '小,,,,ssss,,www,王', '男', '20', '100'],
['2', '小李', '男', '20', '101'],
['3', '小張', '女', '20', '102'],
['4', '小趙', '女', '20', '103']
]);
/**
* excel 下載:github https://github.com/PHPOffice/PHPExcel
* 示例:https://jingyan.baidu.com/article/915fc414f4c2e451384b205c.html
* @param $filenmae string 文件名
* @param $title array 標題
* @param $data array 數據
*/
function excel($filename = 'excel', $title, $data)
{
// 配置
error_reporting(E_ALL);
set_time_limit(0);
date_default_timezone_set('PRC');
// 引入excel 此處注意路徑
include $_SERVER['DOCUMENT_ROOT'] . '/Classes/PHPExcel.php';
// 填充數據
$excel = new PHPExcel();
// Excel表格式
$letter = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
//填充表頭信息
for ($i = 0; $i < count($title); $i++) {
$excel->getActiveSheet()->setCellValue("$letter[$i]1", "$title[$i]");
}
//填充表格信息
// $i 是縱向位置 $j 是橫向位置
$i = 2;
foreach ($data as $key => $value) {
$j = 0;
foreach ($value as $k => $v) {
$excel->getActiveSheet()->setCellValue("$letter[$j]" . $i, "$v");
$j++;
}
$i++;
}
$filename = iconv("utf-8", "gb2312", $filename.'.xls');
//創建Excel輸入對象
$write = new PHPExcel_Writer_Excel5($excel);
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/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='. $filename);
header("Content-Transfer-Encoding:binary");
$write->save('php://output');
exit;
}
excel表格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.