Discutamos contigo cómo importar datos de Excel a la base de datos, no digas tonterías y vayamos directamente a los productos secos.
1. Primero, todos descargan el paquete de código phpExcel de Internet.
Descargar la extensión PHPExcel http://phpexcel.codeplex.com/
Bueno, encuentra las herramientas que necesitas para descargar, no haré un escándalo contigo, ¡solo ve directamente al código! ! !
Backend (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('请导入表格 !');
}
}
}
Código de front-end (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>
Nota: Preste atención a la ruta al importar el complemento PHPExcel.
Imagen de efecto:
Bueno, importar datos de Excel a la base de datos es tan simple que puede recopilarlos y reimprimirlos si lo necesita, PD: Por favor, apoye el original, reimprima, indique la fuente y ¡adiós! ! !