php excel mysql6_PHP导入Excel到MySQL的方法

本文讲述了如何修正reader.php中的编码问题,将`OLERead.php`替换为`oleread.inc`,并调整输出编码为UTF-8以避免数据库导入错误。同时介绍了上传Excel文件、选择数据表以及通过PHP读取Excel并写入数据库的过程,包括错误处理和编码设置。
摘要由CSDN通过智能技术生成

注意点:

reader.php 中的下面这行要修改  1、将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;改为 require_once ‘oleread.inc’;

2、require_once ‘oleread.inc’也可以和拷贝出来放到reader的文件最前面合并为一个文件

3、$data->setOutputEncoding(‘utf-8’)也可以这样用,我的项目都是utf-8的编码,开始用的就是上面的写法$data->setOutputEncoding(’CP936′);结果是,导入数据库老是说编码错误。最后设成utf-8解决了。 上传Excel界面代码:

upExcel.php

header("Content-Type:text/html;charset=utf-8"); //设置字体编码,避免中文乱码

?>

导入测试

function import_check(){

var f_content = form1.file.value;

var fileext=f_content.substring(f_content.lastIndexOf("."),f_content.length)

fileext=fileext.toLowerCase()

if (fileext!='.xls')

{

alert("对不起,导入数据格式必须是xls格式文件哦,请您调整格式后重新上传,谢谢 !");

return false;

}

}

选择你要导入的数据表:

实现上传写入数据库的代码insert.php

header("Content-Type:text/html;charset=utf-8"); //设置字体编码,避免中文乱码

require_once("../db_config.php");

require_once 'Excel/reader.php';

error_reporting(E_ALL ^ E_NOTICE);

//ini_set('max_execution_time', '100'); //php运行时间为30秒,当数据量大时,会出现超时而导致无法全部导入的情况。

if($_POST)

{

$Import_TmpFile = $_FILES['file']['tmp_name'];

//$Import_TmpFile = 'http://test998-merchphoto.stor.sinaapp.com/test.xls';

$data = new Spreadsheet_Excel_Reader();

$data->setOutputEncoding('utf-8');

$data->read($Import_TmpFile);

$count =0;

for($i= 1; $i<= $data->sheets[0]['numRows']; $i++)

{

$sql= "INSERT INTO test_xls(id,tm,name) VALUES('". $data->sheets[0]['cells'][$i][1]."','". $data->sheets[0]['cells'][$i][2]."','". $data->sheets[0]['cells'][$i][3]."')";

echo $sql."";

if(mysql_query($sql))

{

$count++;

}

}

echo "";

}

?>

mysql 表:

0818b9ca8b590ca3270a3433284dd417.png

excel:

0818b9ca8b590ca3270a3433284dd417.png

参考资料:

1、http://jason2016.blog.51cto.com/892969/289411

2、http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568133.html

3、http://blog.csdn.net/china_skag/article/details/7098473

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值