uploadify+PHPExcel无刷新导入数据-完善中1

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文件数据提供了很方便的方法。通过合理使用它们,我们可以轻松地实现一些复杂的功能,提高开发效率。希望本文对您有所帮助!

后端开发标签