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にデータをインポートします.
3.2データベースからデータを読み込みexcelテーブルに書き込む.
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");
//