php上传xls文件导入到mysql数据表

申明下面的文章属于转载,现在大家新下载的版本跟下面列子这个不一样!我看了很多网上的列子,最后我还是读了那个英文的手册,上面说的很清楚!大家英语不好可以下载有道!其实重点是要包含下面两行:

require_once ‘excellib/PHPExcel.php‘;

require_once ‘excellib/PHPExcel/IOFactory.php‘;

你们各自的替换各自存放目录,我这里用的是excellib目录。就是要把PHPExcel.php‘,PHPExcel/IOFactory.php包含进来就可以,其他的跟后面这个例子差不多。

本功能实际上是通过一个国外php对xls文件读取的类实现的,网上的资料多是excel文件另存为csv文件,然后从csv文件导入。

PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader  下载解压后,

目录结构

首先我们需要一个上传页面:

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>导入测试</title>

</head>

<body>

<script>

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;

}

}

</script>

<table width="98%" border="0" align="center" style="margin-top:20px; border:1px solid #9abcde;">

<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="insert.php">

<tr >

<td height="28" colspan="2" background="../skins/top_bg.gif"><label>  <strong><a href="#">小学数学题目数据导入</a></strong></label></td>

</tr>

<tr>

<td width="18%" height="50"> 选择你要导入的数据表</td>

<td width="82%"><label>

<input name="file" type="file" id="file" size="50" />

</label>

<label>

<input name="button" type="submit" class="nnt_submit" id="button" value="导入数据"    onclick="import_check();"/>

</label>

</td>

</tr>

<tr>

<td colspan="2" bgcolor="#DDF0FF">  [<span class="STYLE1">注</span>]数据导入格式说明:</td>

</tr>

<tr>

<td colspan="2">    1、其它.导入数据表文件必须是<strong>execel</strong>文件格式{.<span class="STYLE2">xls</span>}为扩展名.</td>

</tr>

<tr>

<td colspan="2">  2、execel文件导入数据顺序必须如:序号    | 题目    </td>

</tr>

<tr>

<td colspan="2"> </td>

</tr></form>

</table>

</body>

</html>

数据库连接代码页:

<?php

$host="localhost";

$user="root";

$password="123456";

$database="project";

[email protected]_connect("$host","$user","$password");

if(!$connect)

{

echo "database connect wrong";

exit;

}

$db=mysql_select_db("$database",$connect);

$sql=mysql_query("SET NAMES ‘gb2312‘");

?>

读取插入的页面

代码如下:

<?php

error_reporting(E_ALL ^ E_NOTICE);

if($_POST){

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

require_once ‘conn.php‘;

mysql_select_db(‘test_xls‘); //选择数据库

require_once ‘Excel/reader.php‘;

$data = new Spreadsheet_Excel_Reader();

$data->setOutputEncoding(‘UTF-8‘);

$data->read($Import_TmpFile);

$array =array();

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

for ($j = 1; $j <= $data->sheets[0][‘numCols‘]; $j++) {

$array[$i][$j] = $data->sheets[0][‘cells‘][$i][$j];

}

}

sava_data($array);

}

function sava_data($array){

$count =0;

$total =0;

foreach( $array as $tmp){

$Isql = "Select id from    xls    where id=‘".$tmp[1]."‘";

$sql = "Insert into xls (id,tm) value(";

$sql.="‘".$tmp[1]."‘,‘".$tmp[2]."‘)";

if(! mysql_num_rows(mysql_query($Isql) )){

if( mysql_query($sql) ){

$count++;

}

}

$total++;

}

echo "<script>alert(‘共有".$total."条数据,导入".$count."条数据成功‘);</script>";

}

function TtoD($text){

$jd1900 = GregorianToJD(1, 1, 1900)-2;

$myJd = $text+$jd1900;

$myDate = JDToGregorian($myJd);

$myDate = explode(‘/‘,$myDate);

$myDateStr = str_pad($myDate[2],4,‘0‘, STR_PAD_LEFT)."-".str_pad($myDate[0],2,‘0‘, STR_PAD_LEFT)."-".str_pad($myDate[1],2,‘0‘, STR_PAD_LEFT);

return $myDateStr;

}

?>

数据库testz_xls表

测试环境 windows xp

phpnow 1.4

地址:http://localhost/test/up.php

测试图:

本文出自 “成长流水账----开源世界,分享知识的快乐!” 博客,请务必保留此出处http://jason2016.blog.51cto.com/892969/289411本文出自
51CTO.COM技术博客

时间: 2024-10-05 05:11:29

php上传xls文件导入到mysql数据表的相关文章

java上传xls文件

using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using PublicProject.ENTITY; using System.Data; using System.IO; using System.Data.OleDb; using PublicProject.BLL; public partial c

jQuery+php+ajax+PHPExcel实现上传excel文件导入数据库

项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript"src="/js/lib/jquery.ajax.form.js"></script> 视图文件:goods_list.ctp(商品列表), <div class="btnimport"> <form class='myupload' acti

文件上传---普通文件fileupload.jar和url文件httpUrlConnection

文件上传---普通文件和url文件 主要用来学习使用common-fileupload.jar和java.net.httpURLConnection 普通文件: 1 //上传xls文件到临时目录 2 if (! ServletFileUpload.isMultipartContent(request)) return; 3 DiskFileItemFactory factory = new DiskFileItemFactory(); // 建立factory 4 factory.setSize

文件上传---普通文件和url文件

主要用来学习使用common-fileupload.jar和java.net.httpURLConnection 普通文件: //上传xls文件到临时目录 if (! ServletFileUpload.isMultipartContent(request)) return; DiskFileItemFactory factory = new DiskFileItemFactory(); // 建立factory factory.setSizeThreshold(4*1024*1024); //

ZendFramework2学习笔记 文件上传、文件上传进度

修改php.ini以适应文件的要求: //php.ini file_uploads = On post_max_size = 600M upload_max_filesize = 600M session.upload_progress.enabled = On session.upload_progress.freq = "1%" session.upload_progress.min_freq = "1" 以上我们限制了文件大小限制在不超过600MB. 关于文件

SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)

读取Excle表返回一个集合: package com.shiliu.game.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect

eclipse中导入jdk源码、SpringMVC注解@RequestParam、SpringMVC文件上传源码解析、ajax上传excel文件

eclipse中导入jdk源码:http://blog.csdn.net/evolly/article/details/18403321, http://www.codingwhy.com/view/799.html. ------------------------------- SpringMVC注解@RequestParam:http://825635381.iteye.com/blog/2196911. --------------------------- SpringMVC文件上传源

基于Spring MVC实现基于form表单上传Excel文件,批量导入数据

在pom.xml中引入: <!--处理2003 excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> </dependency> <!--处理2007 excel--> <dependency> <group

上传Excel文件使用JXL解析

继续昨天的说,昨天说到用fullcalendar日期控件来显示日程,现在有一个需求是读取Excel中的日程信息,然后显示在日历上,继续记录备忘. 一.上传文件 上传文件也困惑了我很久,今天一起记录一下.项目框架是SSH的,所以上传文件就使用了struts2的fileupload,所需要的jar包都在引入struts2的时候引入了,然后就是直接上代码操作了. 1.1 页面 <form id="excelform" action="........." metho