PHP使用PHPExcel导出,导入数据总结

导出excel:

转自 http://blog.csdn.net/hwhjava/article/details/48023517
[php]  view plain  copy
  1. header("Content-type: text/html; charset=utf-8");  
  2. include_once dirname(dirname(__FILE__)).'/Classes/PHPExcel.php';  
  3. $objPHPExcel = new PHPExcel();  
  4. $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")  
  5.     ->setLastModifiedBy("Maarten Balliauw")  
  6.     ->setTitle("Office 2007 XLSX Test Document")  
  7.     ->setSubject("Office 2007 XLSX Test Document")  
  8.     ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")  
  9.     ->setKeywords("office 2007 openxml php")  
  10.     ->setCategory("Test result file");  
  11.   
  12. //设置标题  
  13. $objPHPExcel->getActiveSheet()->setTitle($filename);  
  14.   
  15. //设置表头  
  16. $key1 = 1;  
  17. $objPHPExcel->setActiveSheetIndex(0)  
  18.     ->setCellValue('A'.$key1'ID')  
  19.     ->setCellValue('B'.$key1'关键词')  
  20.     ->setCellValue('C'.$key1'歌曲HASH')  
  21.     ->setCellValue('D'.$key1'歌曲名')  
  22.     ->setCellValue('E'.$key1'排序')  
  23.     ->setCellValue('F'.$key1'开始日期')  
  24.     ->setCellValue('G'.$key1'结束日期')  
  25.     ->setCellValue('H'.$key1'操作人');  
  26.   
  27. //设置样式:  
  28. $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setBold(true); //多个单元格  
  29. // $objPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->getColor()->setARGB('FFFF0000'); //设置颜色  
  30. // $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); //单个单元格  
  31. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);  //列宽必须单个设置  
  32. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);  
  33. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);  
  34. $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);  
  35. $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);  
  36.   
  37. //写入内容  
  38. foreach($datalist as $key =>$value){  
  39.     $key1=$key+2;  
  40.     $objPHPExcel->setActiveSheetIndex(0)  
  41.         ->setCellValue('A'.$key1$value['id'])  
  42.         ->setCellValue('B'.$key1$value['keyword'])  
  43.         ->setCellValue('C'.$key1$value['hash'])  
  44.         ->setCellValue('D'.$key1$value['filename'])  
  45.         ->setCellValue('E'.$key1$value['weight'])  
  46.         ->setCellValue('F'.$key1$value['startdate'])  
  47.         ->setCellValue('G'.$key1$value['enddate'])  
  48.         ->setCellValue('H'.$key1$value['editor']);  
  49. }  
  50. // $objPHPExcel->setActiveSheetIndex(0);  
  51.   
  52. header('Content-Type: application/vnd.ms-excel');  
  53. header('Content-Disposition: attachment;filename="'$filename .'.xls"');  
  54. header('Cache-Control: max-age=0');  
  55.   
  56. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel'Excel5');  
  57. $objWriter->save('php://output');  
  58. exit;  

从excel导入:

[php]  view plain  copy
  1. header("Content-type: text/html; charset=utf-8");  
  2. $addFile=$_FILES['excel'];  
  3. $excelFileName =$addFile['tmp_name'];  
  4. $location = KG_DOMAIN . '/diysort/index';  
  5. if ($addFile['type'] != 'application/vnd.ms-excel' && $addFile['type'] != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {  
  6.     echo 'alert("上传格式错误");window.location.href="' . $location .'";';  
  7.     //header("Location: " . KG_DOMAIN . '/diysort/index');  
  8.     exit;  
  9. }  
  10. include_once dirname(dirname(__FILE__)).'/Classes/PHPExcel/IOFactory.php';  
  11.   
  12. $objPHPExcel = PHPExcel_IOFactory::load($excelFileName);  
  13. $objWorksheet = $objPHPExcel->getSheet(0);  
  14. $highestRow    = $objWorksheet->getHighestRow();          // 取得总行数  
  15. $highestColumn = $objWorksheet->getHighestColumn();    // 取得总列数  
  16.   
  17. $highestColumnIndex = PHPExcel_Cell::columnIndexFromString ( $highestColumn );    
  18. $excelData = array ();    
  19. for($row = 1; $row <= $highestRow$row++) {    
  20.     for($col = 0; $col < $highestColumnIndex$col++) {    
  21.         $excelData[$row-1][] = $objWorksheet->getCellByColumnAndRow( $col$row )->getValue();    
  22.     }    
  23. }    
  24. //数据入库  
  25. $diysortmodule = new DiysortModule();  
  26. $rowins = 0;  
  27. foreach ($excelData as $key => $value) {  
  28.     if (empty($value) || trim($value[0]) == '关键词' || trim($value[0] == 'ID')) {  
  29.         continue;  
  30.     }  
  31.     $keyword = trim(addslashes($value[0]));  
  32.     $hash = trim(addslashes($value[1]));  
  33.     $filename = trim(addslashes($value[2]));  
  34.     $weight = intval($value[3]);  
  35.     $startdate = trim(addslashes($value[4]));  
  36.     $enddate = trim(addslashes($value[5]));  
  37.     $adddate = date('Y-m-d H:i:s',time());  
  38.     $input_data = array(  
  39.         'keyword'    => $keyword,  
  40.         'startdate'  => $startdate,  
  41.         'enddate'    => $enddate,  
  42.         'hash'       => $hash,  
  43.         'filename'   => $filename,  
  44.         'weight'     => $weight,  
  45.         'adddate'    => $adddate,  
  46.         'editor'     => $this->editor,   
  47.     );  
  48.     if (!empty($hash) && !empty($filename) && is_numeric($weight)) {  
  49.         $newid = $diysortmodule->addData($input_data);  
  50.         if ($newid > 0) {  
  51.             $rowins ++;  
  52.         }  
  53.     }  
  54. }  
  55. echo 'alert("共上传成功'$rowins.' 条记录");window.location.href="' . $location .'";';  
  56. exit;  

你可能感兴趣的:(php)