1. 程式人生 > >yii框架實現phpexcel匯入匯出

yii框架實現phpexcel匯入匯出

yii框架實現phpexcel匯入匯出

首先進行phpexcel安裝

網上有很多擴充套件安裝,這裡就不介紹了,可以通過composer安裝,也可以手動下載引入,這裡需要注意的是composer和手動下載在引用類時不太一樣,composer安裝的直接用根名稱空間即可"/PHPExcel",手動安裝需按照自己定義的引用。

一.檔案匯入

  1. html程式碼
<input type="file" style="" name="phone_list" />
  1. php程式碼
$insert = array();
$file = UploadedFile::getInstance($model
, 'phone_list'); if (!$file) { $this->backToJson(self::STATUS_ERROR,[],'上傳檔案有誤!'); } $reader = new PHPExcel_Reader_Excel2007;//建立excel物件 $PHPExcel = $reader->load($file->tempName); //載入檔案 $currentSheet = $PHPExcel->getSheet(0); //**讀取excel檔案中的指定工作表*/ $allColumn = $currentSheet->getHighestColumn(); //**取得最大的列號*/
$allRow = $currentSheet->getHighestRow(); //**取得一共有多少行*/ $allColumn++; for($rowIndex=1; $rowIndex<=$allRow; $rowIndex++){ //迴圈讀取每個單元格的內容。注意行從1開始,列從A開始 $item = array(); for($colIndex='A';$colIndex!=$allColumn;$colIndex++){ $addr = $colIndex.$rowIndex; $cell = $currentSheet
->getCell($addr)->getValue(); if($cell instanceof \PHPExcel_RichText){ //富文字轉換字串 $cell = $cell->__toString(); } $val = iconv('UTF-8', 'utf-8', $cell); $item[] = trim($val); } if ($item) { $insert[] = $item; } } //這裡最後得到的insert陣列就是excel裡面的資料

二.檔案匯出

匯出比匯入簡單很多,我這裡寫的是通過瀏覽器彈出檔案儲存,如果想儲存到本地的話,可以自行修改結尾部分
$excel = new PHPExcel();
$excel->getProperties()->setCreator("測試")
      ->setLastModifiedBy("測試")
      ->setTitle('測試')
      ->setSubject('測試')
      ->setDescription('測試')
      ->setKeywords("excel")
      ->setCategory("result file");

$name = "測試檔名稱" ;//瀏覽器匯出直接寫檔名
/*以下就是對處理Excel裡的資料, 橫著取資料,主要是這一步,其他基本都不要改*/
//書寫excel頭部

$excel->setActiveSheetIndex(0)->setCellValue("A1", '名稱');
$excel->setActiveSheetIndex(0)->setCellValue("A2", 'test');
$excel->setActiveSheetIndex(0)->setCellValue("B1", '年齡');
$excel->setActiveSheetIndex(0)->setCellValue("B2", '18');


$excel->getActiveSheet()->setTitle('sheet名稱');
$excel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$name.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = new PHPExcel_Writer_Excel2007($excel);
$objWriter->save('php://output');//這是儲存方式,更改括號內參數即可