跟大家一起來討論下如何把excel資料匯入到資料庫,廢話少說,直接上干貨,
1,首先大家先到網上下載phpExcel 代碼包,
下載PHPExcel了擴展http://phpexcel.codeplex.com/
好了,下載需的工具自個兒去找吧,我就不跟你起哄了,廢話少說直接上代碼!!!
后端(ThinkPHP v6):
<?php
namespace api\admin\controller;
use think\admin\Controller;
use vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\Spreadsheet;
use vendor\phpoffice\phpspreadsheet\src\PhpSpreadsheet\IOFactory;
class WithdrawalMoney extends Controller
{
protected $table = 'withdrawal_money';
public function excel_import()
{
ini_set('memory_limit', '1024M');
require root_path() . "vendor/PHPExcel/Classes/PHPExcel.php";
require root_path() . "vendor/PHPExcel/Classes/PHPExcel/IOFactory.php";
header("Content-type:text/html;charset=utf-8");
//實體化主檔案
$file = $_FILES['file'];//接收前臺傳過來的execl檔案
//截取檔案的后綴名,轉化成小寫
$extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
if ($extension == "xlsx") {
//2007(相當于是打開接收的這個excel)
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
} else {
//2003(相當于是打開接收的這個excel)
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
}
$objContent = $objReader->load($file['tmp_name']);
if ($objContent) {
$sheetContent = $objContent->getSheet(0)->toArray();
$operator = $this->getUserId();//操作者
//洗掉第一行標題
unset($sheetContent[0]);
foreach ($sheetContent as $k => $v) {
$userId = $this->app->db->name('tth_user')->where(['userPhone' => $v[1]])->value('userId');
$arr['userPhone'] = $v[1];
$arr['withdrawal'] = $v[2];
$arr['createTime'] = time();
$arr['operator'] = $operator;
$arr['userId'] = $userId ?? null;
$res[] = $arr;
}
//執行寫入
$re = $this->app->db->name($this->table)->insertAll($res);
if ($re) {
$this->success('匯入成功 !');
} else {
$this->error('匯入失敗 !');
}
} else {
$this->error('請匯入表格 !');
}
}
}
前端代碼(layui):
<fieldset>
<legend>條件搜索</legend>
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false"
method="get" autocomplete="off">
<div class="layui-form-item layui-inline">
<label class="layui-form-label">創建時間</label>
<div class="layui-input-inline">
<input data-date-range name="createTime" value="{:input('get.createTime')}" placeholder="請選擇創建時間"
class="layui-input">
</div>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
<a class="layui-btn layui-btn-primary import_btn" data-type="imports">匯入資料</a>
</div>
</form>
</fieldset>
<script>
window.form.render();
//點擊開始上傳檔案操作
layui.use(['upload'], function () {
var upload = layui.upload;
upload.render({
elem: '.import_btn',
url: "{:url('WithdrawalMoney/excel_import')}",
accept: 'file', //普通檔案
exts: 'xls|excel|xlsx', //允許的檔案后綴
before: function () {
uploadIndex = layer.msg('上傳中,請稍后...', {time: 0, icon: 16, shade: 0.01})
},
done: function (res, index, upload) {
//執行匯入介面后操作
if (res.code == 1) {
parent.layer.msg("上傳成功!", {time: 1000}, function () {
//重新加載父頁面
window.location.reload();
});
}
},
error: function (index, upload) {
layer.msg('上傳失敗!');
},
});
})
</script>
注意:引入PHPExcel插件的時候要注意路徑,
效果圖:


好了,匯入excel資料到資料庫就是如此簡單,有需要的可以收藏,轉載,PS:請支持原創,轉載請標明出處,告辭!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/250203.html
標籤:其他
