框架練手篇 之 Yii 導入導出


Yii::$classMap['PHPExcel'] = '@app/vendor/composer/PHPExcel.php';
設置引入文件


導出
public function actionOut()
{
$arr=Curls::find()->asArray()->all();
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1',"編號")
->setCellValue('B1',"招聘人員" )
->setCellValue('C1',"招聘時間")
->setCellValue('D1',"工資")
->setCellValue('E1',"學歷" )
->setCellValue('F1',"補貼")
->setCellValue('G1',"職位描述")
->setCellValue('H1',"條件");
$num=1;
foreach($arr as $k=>$v)
{
$num++;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$num, $v['id'])
->setCellValue('B'.$num, $v['postion'])
->setCellValue('C'.$num, $v['times'])
->setCellValue('D'.$num, $v['moneys'])
->setCellValue('E'.$num, $v['claim'])
->setCellValue('F'.$num, $v['boon'])
->setCellValue('G'.$num, $v['zpxz'])
->setCellValue('H'.$num, $v['zwjs']);

}
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();
ob_start();
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="test.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
導入
public function actionMyin()
{
$file = UploadedFile::getInstanceByName('file');
$name=$file->name;
$file->saveAs('./'.$name);
$data=array('B'=>'postion',"C"=>"postion","D"=>"moneys","E"=>"claim","F"=>"boon","G"=>"zpxz","H"=>"zwjs");
$tablename='curls';//表名字
$this->fileput("./".$name,$data,$tablename);
}
public function fileput($filePath,$data,$tablename)
{
$PHPExcel = new PHPExcel();
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath))
{
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath))
{
echo 'no Excel';
return ;
}
}
// 加載excel文件
$PHPExcel = $PHPReader->load($filePath);
// 讀取excel文件中的第一個工作表
$currentSheet = $PHPExcel->getSheet(0);
// 取得最大的列號
$allColumn = $currentSheet->getHighestColumn();
// 取得一共有多少行
$allRow = $currentSheet->getHighestRow();

// 從第二行開始輸出,因爲excel表中第一行爲列名
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
/**從第A列開始輸出*/
//echo $allColumn;

for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();
//print_r($val);
//die;

if($currentColumn == 'A')
{
//echo $val."\t";
}else if($currentColumn <= $allColumn){
$data1[$currentColumn]=$val;
}
}
foreach($data as $key=>$val){
$data2[$val]=$data1[$key];
}
$connection = \Yii::$app->db;
$connection->createCommand()->insert("curls",$data2)->execute();

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