如何使用将Excel数据导入数据库? (js excel导入数据库)
在现代的数据处理和管理中,Excel表格已成为无可替代的存在。Excel表格在业务数据管理和处理中拥有丰富的功能和工具,可以帮助更好地管理和分析业务数据。
但是,Excel表格作为客户端的电子表格软件,它所存储的数据仅仅限于本地。如果需要将该数据存储到数据库中用于后期的数据处理、数据分析或者业务展示,就需要将Excel表格的数据导入到指定的数据库中。本文将详细介绍如何使用将Excel数据导入数据库中。
准备工作:
使用导入Excel数据到数据库,首先需要准备以下几项:
– 服务器环境: 导入Excel数据到数据库需要服务器来支持。Web服务器、IIS、Tomcat等都可以做到这一点。
– MySQL数据库:本次演示使用MySQL作为数据库,其他类型的数据库也一样适用。
– HTML页面:用于上传Excel文件。
– JavaScript:用于编写数据导入脚本程序,帮助实现将Excel数据导入到MySQL数据库中的功能。
之一步:创建数据库表
进入MySQL控制台后,使用以下指令创建数据表。
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT ”,
`age` int(11) NOT NULL DEFAULT ‘0’,
`address` varchar(100) NOT NULL DEFAULT ”,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第二步:编写上传Excel文件的HTML页面
在HTML页面中添加一个上传Excel文件的表单,并为其定义相应的属性,如下:
在下面的代码中,定义了上传Excel文件的函数(FileUpload())。在函数中,使用new XMLHttpRequest()来创建XMLHttpRequest对象发送POST请求到后台处理程序。request.setRequestHeader()是可以添加请求头信息的方法,用于指定请求参数类型和服务器处理方向。
function FileUpload() {
var fileObj = document.getElementById(“uploadExcel”);
var file = fileObj.files[0];
var reader = new FileReader();
reader.onload = function (e) {
var data = e.target.result;
var workbook = XLSX.read(data, {type: ‘binary’}); // XLSX是一个操作Excel的库
var items = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);
var xhr = new XMLHttpRequest();
xhr.open(“POST”, “insert.php”);
xhr.setRequestHeader(“Content-Type”, “application/json”);//设定请求数据类型
xhr.send(ON.stringify({data:items})); //将获取到的值赋给后台data变量。
}
reader.readAsBinaryString(file);
}
第三步:编写后台PHP程序
在编写PHP程序之前,必须先安装phpoffice/phpspreadsheet库。在项目目录下使用以下命令进行安装:
composer require phpoffice/phpspreadsheet
在后台程序中,首先要用con.php文件与MySQL数据库连接。该文件代码如下所示
$con=mysqli_connect(‘localhost’,’root’,’root’,’yourdb’) or die(“error connecting”);
mysqli_query($con,’set names utf8′);
?>
接下来,在insert.php中,使用phpoffice/phpspreadsheet库来处理上传的Excel文件。将Excel文件转换为数组。然后建立一个插入语句,循环插入数据。
require_once ‘con.php’;
require_once ‘vendor/autoload.php’;
use PhpOffice\PhpSpreadsheet\IOFactory;
$json = file_get_contents(‘php://input’); //获取请求上传的数据
$data = json_decode($json, true); //将请求数据由对象转换为数组
$items = $data[‘data’];
for($i=0;$i
$id=$i+1;
$name=$items[$i][‘name’];
$age=$items[$i][‘age’];
$address=$items[$i][‘address’];
$sql=”INSERT INTO `test` (`id`,`name`,`age`,`address`) VALUES (‘”.$id.”‘,'”.$name.”‘,'”.$age.”‘,'”.$address.”‘)”;
mysqli_query($con,$sql);
}
通过以上操作,我们已经实现了将Excel表格中导出的数据直接存储到数据库中的操作。我们可以通过使用该方法来方便地将数据转换为更好的格式存储起来,以便后期进行深入的数据分析和处理。