phpExcel表データの読み込みと表へのデータの埋め込み

11494 ワード

1 .phpexcelのダウンロードアドレス:https://github.com/PHPOffice/PHPExcel/archive/1.8.zip.
2 .PHPExcelを導入する.phpファイル.
3.excelデータをmysqlデータベースにインポートする方法とmysqlからexcelにデータをエクスポートする方法の2つについて説明します.
3.1 mysqlにデータをインポートします.
//       ,        excel                 

$dir=dirname(__FILE__); //       
$filename=$dir.'/excel_upload/'.$res; //excle   

$fileType=PHPExcel_IOFactory::identify($filename);//            phpexcel 
    $objReader=PHPExcel_IOFactory::createReader($fileType);//          
    $objReader->setLoadSheetsOnly($sheetName);//      sheet
    $objPHPExcel=$objReader->load($filename);//    

 //       sheet B2      
        $objWorksheet = $objPHPExcel->getActiveSheet(); //         sheet
        $resl3=trim($objWorksheet->getCell('B2')->getValue()); //         ,       。
 
    //       sheet B2      


//        

foreach($objPHPExcel->getWorksheetIterator() as $sheet){//   sheet
    foreach($sheet->getRowIterator() as $row){//    

            if($row->getRowIndex()<2){
                continue;
            }
            $arr=[];
            $index=1;
            $arr2=[];
            foreach($row->getCellIterator() as $cell){//    
                    $data=$cell->getValue();//       
                  //  echo $data."";
               //if  
                  if($index<18){
                    $index=$index+1;
                   // echo $index;
                 // echo "
"; // $arr2[]=$data; $x_no_type2=gettype($arr2['0']); if($x_no_type2=gettype($arr2['0'])=='string'){ $row->getRowIndex(); // if($row->getRowIndex()==2){ $zaname=$arr2['0']; } } // // $arr["zs_name"]=' '; $arr["zs_name"]=$zaname; $arr[$arrzd[$index]]=$data; // } //if } $x_no_type=gettype($arr['x_no']); if($x_no_type=gettype($arr['x_no'])=='double'){ $db->insert('butt',$arr); // , } } echo "alert(' ');location.href=''"; } // // , excel , , $dir=dirname(__FILE__); // if (!empty($_POST)) { // foreach($files as $v) { // if($v=="." || $v==".."){continue;} $xy_num=trim($_POST["xy_num"]); $jiedao=trim($_POST["jiedao"]); $attribute=trim($_POST["attribute"]); $roomtime=trim($_POST["roomtime"]); // if ($_FILES){ $file = $_FILES['uploadFile']; vendor\FileUploader::setTypes(array('image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png')); $res = vendor\FileUploader::uploadOne($file, 'excel_upload'); $filename=$dir.'/excel_upload/'.$res; // $filename = $realpath . '/' . $v; // var_dump($filename);exit; $fileType=PHPExcel_IOFactory::identify($filename);// phpexcel $objReader=PHPExcel_IOFactory::createReader($fileType);// $objReader->setLoadSheetsOnly($sheetName);// sheet $objPHPExcel=$objReader->load($filename);// // sheet B2 $objWorksheet = $objPHPExcel->getActiveSheet(); // $resl3=trim($objWorksheet->getCell('B2')->getValue()); $rows = array(); foreach ($objWorksheet->getRowIterator() as $key=>$row) { // // if(count($rows) > 1) continue; $cellIterator = $row->getCellIterator(); // $cellIterator->setIterateOnlyExistingCells( false); // Loop all cells, even if it is not set foreach ($cellIterator as $cell) { // if (!is_null($cell)) { // $rows[$key][] = $cell->getCalculatedValue(); } } // 1 1 , $cols = 0; foreach($rows[$key] as $vv) { if (!empty($vv)) $cols++; } if ($cols <= 1) unset($rows[$key]); } foreach ($rows[2] as $kk => $vv) { $rows[2][$kk] = myTrim($vv); } // print_r($rows);exit; // if($resl3!=" "){ // alert(" , ","back"); // } // sheet B2 // $sql = "SHOW FULL COLUMNS FROM levy" ; $zdname = $db->fetchAll($sql); foreach($zdname as $row){ $arrzd[$row["Comment"]] = $row["Field"]; } // $arrzd[' '] = 'room_dong'; $arrzd[' '] = 'room_ceng'; $arrzd[' '] = 'room_dan'; // $titlenme=$objPHPExcel->getActiveSheet("A1:S1")->getCeLL()->getvalue(); // // print_r($arrzd);exit; date_default_timezone_set("Asia/Shanghai"); $sql = "select * from levy where lp_name='$titlenme'"; $res = $db->fetchAll($sql); if($res){ alert(' , ','back'); } // $ordertime=time(); $rowTitles = array_shift($rows); foreach($rows as $row){ $arr = array(); $arr["lp_name"]=$titlenme; $arr["addtime"]=$ordertime; foreach($row as $ck => $col){ $rowTitle = $rowTitles[$ck]; if (isset($arrzd[$rowTitle])) { $fieldName = $arrzd[$rowTitle]; $arr[$fieldName] = trim($col,'/-'); } } // $arr["xy_num"]=$xy_num; $arr["jiedao"]=$jiedao; $arr["attribute"]=$attribute; $arr["roomtime"]=$roomtime; // excel 2021/9/16 if($arr['allot_time']!=null){ $res1=PHPExcel_Shared_Date::ExcelToPHP($arr['allot_time']); $arr['allot_time']=date('Y-m-d', $res1); } if($arr['back_time']!=null){ $res2=PHPExcel_Shared_Date::ExcelToPHP($arr['back_time']); $arr['back_time']=date('Y-m-d', $res2); } if($arr['roomtime']!=null){ $res3=PHPExcel_Shared_Date::ExcelToPHP($arr['roomtime']); $arr['roomtime']=date('Y-m-d', $res3); } // excel // print_r($row);exit; // 0 if (empty($arr['lp_no']) || !is_numeric($arr['lp_no'])) continue; // foreach($arr as $kk => $vv) { if (empty($vv)) unset($arr[$kk]); } // print_r($arr);exit; $db->insert('levy',$arr); } alert(' ','jump','test.php'); } else{ echo " "; }

3.2データベースからデータを読み込みexcelテーブルに書き込む.
//      


    $objPHPExcel=new PHPExcel();//   PHPExcel ,            excel

    $objActSheet=$objPHPExcel->getActiveSheet();

    $objActSheet->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//  excel            

    $objActSheet->getStyle("A1:P1")->getFont()->setName("  ")->setSize(16)->setBold(true);//         

    $objActSheet->getStyle("A2:P2")->getFont()->setName("  ")->setSize(11);//          

    $objActSheet->getStyle('A2:P2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); //          

    $objActSheet->getRowDimension(1)->setRowHeight(50); //   1    

    $objActSheet->getRowDimension(2)->setRowHeight(25);   2    

    $objActSheet->getRowDimension(3)->setRowHeight(34.5);   3    

    $objActSheet->getColumnDimension('F')->setWidth(30);   F    

    $letter = explode(",","A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P"); //            

//                             

   $sql =  "SHOW FULL COLUMNS FROM table" ; 

   $zdname = $db->fetchAll($sql);  //    

   foreach($zdname as $row){

   $arrzd[]=$row["Field"];
   $arrzdname[]=$row["Comment"];

   }

   unset($arrzdname[0]);

   unset($arrzdname[1]);

   unset($arrzdname[18]); 

  $arrHeader=array_values($arrzdname);

   //         

//                             

     $lenth = count($arrHeader);

    for ($i = 0; $i ";

    $objActSheet->setCellValue("$letter[$i]3","$arrHeader[$i]");

    };

  //  $sql = "select * from butt $str order by x_no asc";

  $sql = "select * from butt x_no order by x_no asc";

    $xlsData = $db->fetchAll($sql);

    $num = count($xlsData);

    $objActSheet->setCellValue('A1',"  "); //      

    $objActSheet->setCellValue('A2',$xlsData[0]["zs_name"]); //      

    $objActSheet->mergeCells("A1:P1");//     

    $objActSheet->mergeCells("A2:P2");//     

    

    //      

        foreach ($xlsData as $k => $v) {

            $k+= 4;

            $k2=$k-1;

            $index=1;

            //    

            $gradeBorder=getBorderStyle("000000");//          

            for($i=65;$i<81;$i++){

                $index=$index+1;          
                //  echo strtoupper(chr($i)).' ';//      

                  $aznum=strtoupper(chr($i));            

                 $exvalue=$v[$arrzd[$index]];                                

           $objActSheet->setCellValue($aznum.$k, $exvalue);

           
        $objActSheet->getStyle($aznum."3:".$aznum."3")->applyFromArray($gradeBorder); //      
        $objActSheet->getStyle($aznum.$k.":".$aznum.$k)->applyFromArray($gradeBorder);  //      
   $objActSheet->getColumnDimension($aznum)->setWidth(20); //     
         }      
        } 

    $objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');//  excel  

    browser_export('Excel5',$xlsData[0]["zs_name"].'.xls');//      

    $objWriter->save("php://output");

//