PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中,_PHP教程
PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中,
如果要使用phpExcelReader将Excel 数据导入到mysql 数据库,请读者点击这个文章查看。
使用phpExcelReader将Excel 数据导入到mysql 数据库。
下面我们介绍另一种方法来实现导入Excel到MySQL数据库。
1、到官网http://phpexcel.codeplex.com/下载PHPExcel类库,我目前使用的是1.7.9版本。如图:
2、直接上代码。
(1)、conn.php文件(这个不用介绍,你懂得):
PHP Code复制内容到剪贴板- $mysql=mysql_connect("localhost","root","root");
- mysql_select_db("test",$mysql);
- mysql_query("set names GBK");
(2)、HTML页面部分:index.php文件(表单提交页面):
XML/HTML Code复制内容到剪贴板- form name="form2" method="post" enctype="multipart/form- data" action="upload_excel.php">
- input type="hidden" name="leadExcel" value="true">
- table align="center" width="90% " border="0">
- tr>
- td>
- input type="file" name="inputExcel">input type="submit" name="import" value="导入数据 ">
- td>
- tr>
- table>
- form>
(3)、表单处理处理程序部分:upload_excel.php文件:
PHP Code复制内容到剪贴板- include("conn.php");
- include("function.php");
- if($_POST ['import']=="导入数据 "){
- $leadExcel=$_POST['leadExcel'];
- if($leadExcel == "true")
- {
- //echo "OK";die();
- //获取上传的文件名
- $filename = $HTTP_POST_FILES['inputExcel'] ['name'];
- //上传到服务器上的临时文件名
- $tmp_name = $_FILES ['inputExcel']['tmp_name'];
- $msg = uploadFile($filename,$tmp_name);
- echo $msg;
- }
- }
(4)、函数部分:function.php文件:
PHP Code复制内容到剪贴板- //导入Excel文件
- function uploadFile($file,$filetempname)
- {
- //自己设置的上传文件存放路径
- $filePath = 'upFile/';
- $str = "";
- //下面的路径按照你 PHPExcel的路径来修改
- set_include_path('.'. PATH_SEPARATOR .'E:\php\AppServ\www\91ctcStudy\PHPExcelImportSQl2 \PHPExcel' . PATH_SEPARATOR .get_include_path());
- require_once 'PHPExcel.php';
- require_once 'PHPExcel\IOFactory.php';
- //require_once 'PHPExcel\Reader\Excel5.php';//excel 2003
- require_once 'PHPExcel\Reader\Excel2007.php';//excel 2007
- $filename=explode(".",$file);//把上传的文件名以“.”好为准做一个数组。
- $time=date("y-m-d-H-i- s");//去当前上传的时间
- $filename [0]=$time;//取文件名t替换
- $name=implode (".",$filename); //上传后的文件名
- $uploadfile=$filePath.$name;//上传后的文件名地址
- //move_uploaded_file() 函数 将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
- $result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下
- if($result) //如果上传文件成功,就执行导入 excel操作
- {
- // $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2003
- $objReader = PHPExcel_IOFactory::createReader('Excel2007');//use excel2003 和 2007 format
- // $objPHPExcel = $objReader->load($uploadfile); //这个容易造成httpd崩溃
- $objPHPExcel = PHPExcel_IOFactory::load($uploadfile);//改成这个写法就好了
- $sheet = $objPHPExcel- >getSheet(0);
- $highestRow = $sheet- >getHighestRow(); // 取得总行数
- $highestColumn = $sheet- >getHighestColumn(); // 取得总列数
- //循环读取excel文件,读取一条,插入一条
- for($j=2;$j$highestRow;$j++)
- {
- for($k='A';$k$highestColumn;$k++)
- {
- $str .= iconv('utf-8','gbk',$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()).'\\';//读 取单元格
- }
- //explode:函 数把字符串分割为数组。
- $strs =& nbsp;explode("\\",$str);
- //var_dump ($strs);
- //die();
- $sql =&n bsp;"INSERT INTO z_test_importexcel(duty_date,name_am,name_pm) VALUES ('".$strs[0]."','".$strs[1]."','".$strs[2]."')";
- //echo $ sql;
- mysql_query ("set names GBK");//这就是指定数据库字 符集,一般放在连接数据库后面就系了
- if(! mysql_query($sql)){
- & nbsp; return false;
- }
- $str =&n bsp;"";
- }
- unlink ($uploadfile); //删除上传的excel文件
- $msg = "导入成 功!";
- }else{
- $msg = "导入失 败!";
- }
- return $msg;
- }
关于这个函数,参考了http://blog.csdn.net/grassroots20 11/article/details/8104604该博友的文章,但是,该博友的写法,我认为有问题,至少 ,我用的
$objPHPExcel = $objReader->load ($uploadfile);
这一句写法,在运行的时候,会出现:
或者是PHPExcel类库官方后来升级了,调用方法需要改正一下吧,具体笔者就没考究了。
3、通过上面的几个步骤,读者再分别准备一个xls和xlsx文档就可以了,系统运行效果:
附件下载:完整DEMO下载(已含PHPExcel类库)附件下载:完整DEMO下载(已含PHPExcel类库)

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

MySQL 数据库中,用户和数据库的关系通过权限和表定义。用户拥有用户名和密码,用于访问数据库。权限通过 GRANT 命令授予,而表由 CREATE TABLE 命令创建。要建立用户和数据库之间的关系,需创建数据库、创建用户,然后授予权限。

数据集成简化:AmazonRDSMySQL与Redshift的零ETL集成高效的数据集成是数据驱动型组织的核心。传统的ETL(提取、转换、加载)流程复杂且耗时,尤其是在将数据库(例如AmazonRDSMySQL)与数据仓库(例如Redshift)集成时。然而,AWS提供的零ETL集成方案彻底改变了这一现状,为从RDSMySQL到Redshift的数据迁移提供了简化、近乎实时的解决方案。本文将深入探讨RDSMySQL零ETL与Redshift集成,阐述其工作原理以及为数据工程师和开发者带来的优势。

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。

要填写 MySQL 用户名和密码,请:1. 确定用户名和密码;2. 连接到数据库;3. 使用用户名和密码执行查询和命令。

1.使用正确的索引索引通过减少扫描的数据量来加速数据检索select*fromemployeeswherelast_name='smith';如果多次查询表的某一列,则为该列创建索引如果您或您的应用根据条件需要来自多个列的数据,则创建复合索引2.避免选择*仅选择那些需要的列,如果您选择所有不需要的列,这只会消耗更多的服务器内存并导致服务器在高负载或频率时间下变慢例如,您的表包含诸如created_at和updated_at以及时间戳之类的列,然后避免选择*,因为它们在正常情况下不需要低效查询se

Navicat本身不存储数据库密码,只能找回加密后的密码。解决办法:1. 检查密码管理器;2. 检查Navicat的“记住密码”功能;3. 重置数据库密码;4. 联系数据库管理员。

通过以下命令查看 MySQL 数据库:连接到服务器:mysql -u 用户名 -p 密码运行 SHOW DATABASES; 命令获取所有现有数据库选择数据库:USE 数据库名;查看表:SHOW TABLES;查看表结构:DESCRIBE 表名;查看数据:SELECT * FROM 表名;

MySQL 中的复制粘贴包含以下步骤:选择数据,使用 Ctrl C(Windows)或 Cmd C(Mac)复制;在目标位置右键单击,选择“粘贴”或使用 Ctrl V(Windows)或 Cmd V(Mac);复制的数据将插入到目标位置,或替换现有数据(取决于目标位置是否已存在数据)。
