excel导入mysql(用PHP-ExcelReader 方法),日期时间出错的处理办法
来源:互联网 发布:读出图片的像素数据 编辑:程序博客网 时间:2024/04/28 12:36
ExcelReader是个简单易用的东东,相信很多使用PHP的同学们需要从EXCEL中导入数据到数据库时,十有八九都会使用它,因为他实在是简单易用。
PHP-ExcelReader
下载地址: http://sourceforge.net/projects/phpexcelreader
导入代码:
< ?php
require_once 'reader.php';
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('gbk');
//”data.xls”是指要导入到mysql中的excel文件
$data->read('data.xls');
@ $db = mysql_connect('localhost', 'root', '123456') or
die("Could not connect to database.");//连接数据库
mysql_query("set names 'gbk'");//输出中文
mysql_select_db('mydb'); //选择数据库
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
//以下注释的for循环打印excel表数据
//以下代码是将excel表数据【3个字段】插入到mysql中,
根据你的excel表字段的多少,改写以下代码吧!
$sql = "INSERT INTO test VALUES('".
$data->sheets[0]['cells'][$i][1]."','".
$data->sheets[0]['cells'][$i][2]."','".
$data->sheets[0]['cells'][$i][3]."')";
echo $sql.'< br />';
$res = mysql_query($sql);
}
?>
注意1:
修改文件的后缀
拿到下载包中的oleread.inc 、 reader.php这两个文件,其他的文件是申明和应用实例!
打开reader.php文件,在31行阁下
//require_once ""PEAR.php"";
require_once ""Spreadsheet/Excel/Reader/OLERead.php"";
//require_once ""OLE.php"";
批改为
//require_once ""PEAR.php"";
require_once ""oleread.inc"";
//require_once""OLE.php"";
注意2:
转换日期格式为:Y-m-d,但是天数还是多一天,小时也多了8个小时
从EXCEL中导入日期类型的字段的时候,问题就来了,首先是时区的问题,还有格式的问题。从EXCEL中读出的都是“d/m/Y”的格式,MYSQL中我一般都用“Y-m-d”的格式。
把:
var $dateFormats = array (
0xe => "d/m/Y",
0xf => "d-M-Y",
0x10 => "d-M",
0x11 => "M-Y",
0x12 => "h:i a",
0x13 => "h:i:s a",
0x14 => "H:i",
0x15 => "H:i:s",
0x16 => "d/m/Y H:i",
0x2d => "i:s",
0x2e => "H:i:s",
0x2f => "i:s.S")
改成:
var $dateFormats = array (
0xe => "Y-m-d",
0xf => "Y-M-d",
0x10 => "M-d",
0x11 => "Y-M",
0x12 => "h:i a",
0x13 => "h:i:s a",
0x14 => "H:i",
0x15 => "H:i:s",
0x16 => "Y-m-d H:i",
0x2d => "i:s",
0x2e => "H:i:s",
0x2f => "i:s.S");
注意3:
修改天数,但是小时还是多8小时
$utcValue = round(($utcDays+1) * SPREADSHEET_EXCEL_READER_MSINADAY);
修改成
$utcValue = round(($utcDays+0) * SPREADSHEET_EXCEL_READER_MSINADAY);
$utcValue = round(($utcDays-(1/3))* SPREADSHEET_EXCEL_READER_MSINADAY);
楼主的问题处理的非常好,还有那个8小时,改成这样就可以了。
- excel导入mysql(用PHP-ExcelReader 方法),日期时间出错的处理办法
- excel导入mysql(用PHP-ExcelReader 方法),日期时间出错的处理办法
- excel导入mysql(用PHP-ExcelReader…
- PHP中使用ExcelReader读取EXCEL日期字段的处理
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- PHP-ExcelReader PHP导入Excel数据[不通过CSV]
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- PHP导入Excel到MySQL的方法
- PHP导入Excel到MySQL的方法
- PHP导入Excel到MySQL的方法
- PHP导入Excel到MySQL的方法
- PHP导入Excel到MySQL的方法
- PHP-ExcelReader错误修改办法
- PHP-ExcelReader:用于解析excel文件的PHP类库
- PHP-ExcelReader:用于解析excel文件的PHP类库
- PHP-ExcelReader:用于解析excel文件的PHP类库
- PHP-ExcelReader:用于解析excel文件的PHP类库
- linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试
- 剖析非标准波特率的设置和使用于Linux操作系统中
- 怎样设计一个好的社交网站
- C#文件及文件夹的操作
- 同步并发操作之等待一次性事件
- excel导入mysql(用PHP-ExcelReader 方法),日期时间出错的处理办法
- VirtualBox安装Android虚拟机,设置桥接网络
- MYSQL复杂多表内外连接实例
- 【百度地图】 SDK v3.0.0 (一)
- 手动注入Spring环境
- MPEG-2 TS码流分析
- hihocoder 字典树,kmp算法
- 关于Android 3.0以后AsyncTask默认单一线程的分析
- 跟开涛学SpringMVC