PHP 導入execl

/**
* @param $filename 上傳文件路徑及名字
* @param string $encode 編碼
* @return array
* PHPExecl類 上傳文件
*/
function read($filename, $encode = 'utf-8')
{
require_once './ThinkPHP/Library/Org/PHPExcel/PHPExcel.php';
require_once './ThinkPHP/Library/Org/PHPExcel/PHPExcel/IOFactory.php';
require_once './ThinkPHP/Library/Org/PHPExcel/PHPExcel/Reader/Excel5.php';
$objReader = \PHPExcel_IOFactory::createReader('excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 1; $row <= $highestRow; $row++) {
for ($col = 0; $col < $highestColumnIndex; $col++) {
$excelData[$row][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;

}

/**
* 上傳execl表格
*/
public function importExcel()
{

if (!empty ($_FILES)) {

$upload = new \Think\Upload(); // 實例化上傳類

$upload->maxSize = 10485760; // 設置附件上傳大小

$upload->exts = array('xls', 'xlsx'); // 設置附件上傳類型

$savePath = $upload->rootPath = './Public/Excel/'; // 設置附件上傳根目錄
$file_name = $upload->saveName = date("ymd") . rand(100, 999);
$upload->autoSub = false; // 將自動生成以photo後面加時間的形式文件夾,關閉


// 上傳文件

$info = $upload->upload();
$exts = $info['excel']['ext'];
if (!$info) {
$this->error($upload->getError());
} else {
$res = $this->read($savePath . $file_name . '.' . $exts);
foreach ($res as $k => $v) {
if ($k != 1) {
$data ['id'] = $v [0];
$data ['ci'] = $v [1];
$data ['juzi'] = $v [2];
$data ['ci_name'] = $v [3];
$data ['ju_name'] = $v [4];
$data ['time'] = date('Ymd');
$result = M('make_mp3')->add($data);
// echo M('make_mp3')->_sql();die;
if (!$result) {
$this->error('導入數據庫失敗');
}
}
}
$this->success('新增成功!', '/index.php?m=Home&c=Spvoice&a=toDay');
}
} else {
$this->display();
}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章