uploadify+PHPExcel无刷新导入数据-完善中1
1. 介绍
uploadify和PHPExcel是两个常用的PHP库,用于实现无刷新上传文件和处理Excel文件数据的功能。在这篇文章中,我们将介绍如何使用uploadify和PHPExcel库来实现无刷新导入数据的功能,并进行一些进一步的完善。
2. 准备工作
2.1 安装uploadify库
首先,我们需要安装uploadify库。可以通过下载最新的uploadify库文件,并将其解压到您的项目目录中。
2.2 安装PHPExcel库
接下来,我们需要安装PHPExcel库。可以通过下载最新的PHPExcel库文件,并将其解压到您的项目目录中。
3. 文件上传
3.1 创建上传页面
首先,我们需要创建一个文件上传的页面。在这个页面上,我们将使用uploadify库来实现无刷新上传文件的功能。
以下是一个简单的上传页面的示例代码:
<!DOCTYPE html>
<html>
<head>
<title>Uploadify+PHPExcel无刷新导入数据-完善中1</title>
<link rel="stylesheet" type="text/css" href="uploadify/uploadify.css">
<script src="uploadify/jquery.min.js"></script>
<script src="uploadify/jquery.uploadify.min.js"></script>
</head>
<body>
<h1>文件上传</h1>
<form enctype="multipart/form-data">
<input type="file" name="file_upload" id="file_upload">
</form>
<script type="text/javascript">
$(document).ready(function() {
$('#file_upload').uploadify({
'swf' : 'uploadify/uploadify.swf',
'uploader' : 'upload.php'
});
});
</script>
</body>
</html>
上面的代码中,我们引入了uploadify库的CSS文件和JavaScript文件。然后,在页面中创建一个文件上传的表单,并初始化uploadify插件。
3.2 创建上传处理脚本
接下来,我们需要创建一个用于处理上传文件的脚本。在这个脚本中,我们将使用PHPExcel库来读取上传的Excel文件数据,并进行相应的处理。
以下是一个简单的上传处理脚本的示例代码:
<?php
require_once('PHPExcel/PHPExcel.php');
$targetFile = $_FILES['file_upload']['tmp_name'];
$inputFileType = PHPExcel_IOFactory::identify($targetFile);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($targetFile);
$sheet = $objPHPExcel->getActiveSheet();
$highestRow = $sheet->getHighestRow();
for ($row = 1; $row <= $highestRow; $row++) {
$cellValue = $sheet->getCell('A'.$row)->getValue();
// 处理单元格数据...
}
// 其他处理逻辑...
echo '导入成功!';
?>
上面的代码中,我们首先引入了PHPExcel库,并定义了要处理的Excel文件路径。接下来,我们使用PHPExcel库提供的方法读取上传的Excel文件数据。
在这个示例中,我们简单地遍历了Excel表格中的每一行,并获取了第一列(A列)的单元格数据。您可以根据自己的需求对单元格数据进行进一步的处理。
4. 动态显示导入进度
目前,我们的代码实现的是无刷新导入数据的功能,并在完成导入后显示导入成功的提示信息。但是,我们还可以进一步完善,以实现动态显示导入进度的功能。
要实现动态显示导入进度,我们需要使用一些额外的JavaScript代码。以下是一个简单的修改后的上传页面的示例代码:
...
<script type="text/javascript">
$(document).ready(function() {
$('#file_upload').uploadify({
'swf' : 'uploadify/uploadify.swf',
'uploader' : 'upload.php',
'progressData' : 'speed',
'onUploadProgress' : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
var percent = (totalBytesUploaded / totalBytesTotal) * 100;
$('#progress-bar').css('width', percent + '%');
$('#progress-bar').text(percent + '%');
},
'onUploadSuccess' : function(file, data, response) {
alert('文件上传成功!');
}
});
});
</script>
...
<div id="progress-bar-container">
<div id="progress-bar"></div>
</div>
...
通过上面的代码,我们添加了一个进度条容器和一个进度条元素。在JavaScript代码中,我们使用了uploadify插件提供的'onUploadProgress'回调函数来动态更新进度条的宽度和文本。
5. 总结
在本文中,我们介绍了如何使用uploadify和PHPExcel库来实现无刷新导入数据的功能,并进行了一些进一步的完善,包括上传进度的动态显示。
uploadify和PHPExcel是两个非常强大的PHP库,它们为我们处理文件上传和处理Excel文件数据提供了很方便的方法。通过合理使用它们,我们可以轻松地实现一些复杂的功能,提高开发效率。希望本文对您有所帮助!