欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP使用PHPExcel讀取excel數(shù)據(jù)并批量上傳到數(shù)據(jù)庫(kù)

 更新時(shí)間:2024年12月25日 11:38:01   作者:又藍(lán)  
這篇文章主要為大家詳細(xì)介紹了PHP如何使用PHPExcel讀取excel數(shù)據(jù)并批量上傳到數(shù)據(jù)庫(kù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下

應(yīng)用場(chǎng)景

當(dāng)遇到需要批量導(dǎo)入數(shù)據(jù)的時(shí)候,前端會(huì)上傳一個(gè)excel表格,由后端讀取數(shù)據(jù)并存入數(shù)據(jù)庫(kù)。前端代碼就不介紹了,這是一個(gè)前后端分離的項(xiàng)目,主要是講解后端讀取excel表格的數(shù)據(jù)。前端上傳文件就可以了。

PHPExcel 是什么

是用來(lái)操作office excel 文檔的一個(gè)PHP類庫(kù),它基于微軟的OpenXML標(biāo)準(zhǔn)和PHP語(yǔ)言??梢允褂盟鼇?lái)讀取、寫(xiě)入不同格式的電子表格,如Excel(BIFF).xls,Excel 2007 (OfficeOpenXML),.xlsx,CSV,Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

要求

PHP 5.2.0 版本及以上

PHP extension php_zip 開(kāi)啟 (如果你需要使用 PHPExcel 來(lái)操作 .xlsx .ods or .gnumeric 文件)

PHP extension php_xml 開(kāi)啟

PHP extension php_gd2 開(kāi)啟(選填, 如果需要計(jì)算準(zhǔn)確的列寬需要開(kāi)啟此擴(kuò)展)

PHP 讀取文件寫(xiě)入數(shù)據(jù)庫(kù)

<?php
header("Content-type:text/html; charset=utf-8");

// 制定允許其他域名訪問(wèn)
header("Access-Control-Allow-Origin:*");
// 響應(yīng)類型
header('Access-Control-Allow-Methods:POST');
// 響應(yīng)頭設(shè)置
header('Access-Control-Allow-Headers:x-requested-with, content-type');
// 數(shù)據(jù)庫(kù)配置文件
include './config/config.php';
// 下載 PHPExcel 放入項(xiàng)目?jī)?nèi),引入即可
include "./PHPExcel-1.8/Classes/PHPExcel/IOFactory.php";


// 獲取前端傳入的文件
$file = $_FILES['file'];
//臨時(shí)文件存放路徑
$fileTmp = $file['tmp_name'];
$fileSize = $file['size'];
$fileName = $file['name'];
//錯(cuò)誤,輸出0,表示文件提交成功
$fileError = $file['error'];


if($fileError==0) {
	$inputFileName = $fileTmp;
	date_default_timezone_set('PRC');
	// 讀取excel文件
	try {
	    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
	    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
	    $objPHPExcel = $objReader->load($inputFileName);
	} catch(Exception $e) {

	}

	// 確定要讀取的sheet,什么是sheet,看excel的右下角
	$sheet = $objPHPExcel->getSheet(0);
	$highestRow = $sheet->getHighestRow();
	$highestColumn = $sheet->getHighestColumn();

	$time = date('Y-m-d h:i:s', time());
	// 把數(shù)據(jù)處理后存入數(shù)組
	$array = array();
	$time = date('Y-m-d h:i:s', time());
	for ($row = 2; $row <= $highestRow; $row++) {
		$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
		// 重復(fù)數(shù)據(jù)不插入數(shù)據(jù)庫(kù)
		$falg = $rowData[0][0];
		$sqlIf = "SELECT codes FROM tablef where codes = '$falg'";
		$querySQL = mysqli_query($conn,$sqlIf);
		$arrSQL = mysqli_fetch_array($querySQL);
		if($arrSQL == null) {
			// 獲取到 Excel 每行的數(shù)據(jù)插入數(shù)據(jù)庫(kù),需根據(jù)你自己的表格進(jìn)行調(diào)整
			$sql="insert into tablef(codes,year,month,idcode,type,timese) values('".$rowData[0][0]."','" .($rowData[0][1])."','".$rowData[0][2]."','".$rowData[0][3]."','".$rowData[0][4]."','".$time."')";

			$query=mysqli_query($conn,$sql);//函數(shù)執(zhí)行一條 MySQL 查詢。
		}
	}

	// 成功后返回給前端
	echo json_encode(["msg" => 'ok']);
}else {
	echo json_encode(["msg" => 'no']);
}


// 斷開(kāi)數(shù)據(jù)庫(kù)連接
$conn->close();   


?>

結(jié)語(yǔ)

這是原生PHP使用的一個(gè)方式,我PHP的話只會(huì)一個(gè) ThinkPHP 框架,這邊我測(cè)試的話 ThinkPHP 使用起來(lái)跟這個(gè)也是差不多的,至于有些其他的php框架的話我沒(méi)有用過(guò),但是基本都差不多?,F(xiàn)在前后端分離占主導(dǎo)地位,對(duì)于一些做后臺(tái)的兄弟們來(lái)說(shuō),這些批量導(dǎo)入數(shù)據(jù)的是很常見(jiàn)的,這邊就分享一個(gè)簡(jiǎn)單的,對(duì)于一些sql語(yǔ)句的話是需要修改的,這里面的sql語(yǔ)句是不安全的,這里提醒一下大家,測(cè)試的時(shí)候使用這些SQL語(yǔ)句為啥問(wèn)題,生產(chǎn)環(huán)境切記不能這樣用。

到此這篇關(guān)于PHP使用PHPExcel讀取excel數(shù)據(jù)并批量上傳到數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)PHP PHPExcel讀取excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論