当前位置:首页 » 编程语言 » php读取表格数据

php读取表格数据

发布时间: 2023-05-16 22:23:16

‘壹’ 用php读取excel,并将结果写入mysql,怎么做

用php读取excel,并将结果写入mysql
<?php
$workbook
=
"D:\\www\\xtwh\\B01\\mysingle.xls";
$sheet
=
"list";
#实例化一个组件的对象
$ex
=
new
COM("Excel.sheet")
or
Die
("Did
not
connect");
#打开工作本使我们可使用它
$wkb
=
$ex->application->Workbooks->Open($workbook)
or
Die
("Did
not
open");
#读单元格数据
$sheets
=
$wkb->Worksheets($sheet);
#Select
the
sheet
$sheets->activate;
#Activate
it
//$cell->activate;
#Activate
the
cell
.If
this,
you
can
modify
the
cell
data.
for($i=2;$i<=2501;$i++)
{
$a=$sheets->Cells($i,A);
if($a->value
==
"last")
break;
$b=$sheets->Cells($i,B);
$bp[]=$b->value;
$c=$sheets->Cells($i,C);
$cp[]=$c->value;
$d=$sheets->Cells($i,D);
$dp[]=$d->value;
$e=$sheets->Cells($i,E);
$ep[]=$e->value;
$f=$sheets->Cells($i,F);
$fp[]=$f->value;
$g=$sheets->Cells($i,G);
$gp[]=$g->value;
$h=$sheets->Cells($i,H);
$hp[]=$h->value;
}
$ex->application->ActiveWorkbook->Close("False");
unset
($ex);
require_once("../../conn.php");
$sql0="DELETE
FROM
`newyonghu`";
$result0=mysql_query($sql0,$mylink);
mysql_free_result($result0);
for($i=0;$i<count($bp);$i++)
{
$sql="INSERT
INTO
`newyonghu`
(`name`,
`dept`,
`team`,
`group01`,
`position`,
`mingzi`,
`single`,
`info`)
VALUES
('".$bp[$i]."',
'".$fp[$i]."',
'".$dp[$i]."',
'".$ep[$i]."',
'".$gp[$i]."',
'".$cp[$i]."',
'".$hp[$i]."',
'single');";
$result=mysql_query($sql,$mylink);
}
echo
"<script
language=\"Javascript\">";
echo
"window.close()";
echo
"</script>";
mysql_free_result($result);
//释放结果内存资源
mysql_close($mylink);
//
断开连接
?>

‘贰’ PHP怎么获取表单提交的数据啊

一、用file_get_contents以get方式获取内容,需要输入内容为:

1、<?php

2、$url='http://www.domain.com/?para=123';

3、$html=file_get_contents($url);

4、echo$html;

5、?>

二、用file_get_contents函数,以post方式获取url,需要输入内容为

1、<?php

2、$url='http://www.domain.com/test.php?id=123';

3、$data=array('foo'=>'bar');

4、$data=http_build_query($data);

5、$opts=array(

6、'http'=>array(

7、'method'=>'POST',

8、'header'=>"Content-type:application/x-www-form-urlencoded ".

9、"Content-Length:".strlen($data)." ",

10、'content'=>$data

11、)

12、);

13、$ctx=stream_context_create($opts);

14、$html=@file_get_contents($url,'',$ctx);

15、?>

三、用fopen打开url,以get方式获取内容,需要输入内容为

1、<?php

2、$fp=fopen($url,'r');

3、$header=stream_get_meta_data($fp);//获取信息

4、while(!feof($fp)){

5、$result.=fgets($fp,1024);

6、丛升}

7、echo"urlheader:{$header}<br>":

8、echo"urlbody:$result";

9、fclose($fp);

10、纳郑码?>

四、用fopen打开洞哪url,以post方式获取内容,需要输入内容为

1、<?php

2、$data=array('foo2'=>'bar2','foo3'=>'bar3');

3、$data=http_build_query($data);

4、$opts=array(

5、'http'=>array(

6、'method'=>'POST',

7、'header'=>"Content-type:application/x-www-form-urlencoded Cookie:cook1=c3;cook2=c4 ".

8、"Content-Length:".strlen($data)." ",

9、'content'=>$data

10、)

11、);

12、$context=stream_context_create($opts);

13、$html=fopen('http://www.test.com/zzzz.php?id=i3&id2=i4','rb',false,$context);

14、$w=fread($html,1024);

15、echo$w;

16、?>

五、用fsockopen函数打开url,以get方式获取完整的数据,包括header和body,需要输入内容为

1、?php

2、functionget_url($url,$cookie=false)

3、{

4、$url=parse_url($url);

5、$query=$url[path]."?".$url[query];

6、echo"Query:".$query;

7、$fp=fsockopen($url[host],$url[port]?$url[port]:80,$errno,$errstr,30);

8、if(!$fp){

9、returnfalse;

10、}else{

11、$request="GET$queryHTTP/1.1 ";

12、$request.="Host:$url[host] ";

13、$request.="Connection:Close ";

14、if($cookie)$request.="Cookie:$cookie ";

15、$request.=" ";

16、fwrite($fp,$request);

17、while(!@feof($fp)){

18、$result.=@fgets($fp,1024);

19、}

20、fclose($fp);

21、return$result;

22、}

23、}

24、//获取url的html部分,去掉header

25、functionGetUrlHTML($url,$cookie=false)

26、{

27、$rowdata=get_url($url,$cookie);

28、if($rowdata)

29、{

30、$body=stristr($rowdata," ");

31、$body=substr($body,4,strlen($body));

32、return$body;

33、}

34、returnfalse;

35、}

36、?>

‘叁’ 如何用PHPExcel读取超大excel文件

上一篇文章介绍了php-excel-reader读取excel文件的方法,因为需要,将excel这样的数据: 新建数据库表如下: -- 数据库: `alumni` -- 表的结构 `alumni` CREATE TABLE IF NOT EXISTS `alumni` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `gid` varchar(20) DEFAULT NULL COMMENT '档案编号', `student_no` varchar(20) DEFAULT NULL COMMENT '学号', `name` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`), KEY `gid` (`gid`), KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 导入后数据库结果如下: php源码如下: 复制代码 代码如下: <?php header("Content-Type:text/html;charset=utf-8"); require_once 'excel_reader2.php'; set_time_limit(20000); ini_set("memory_limit","2000M"); //使用pdo连接数据库 $dsn = "mysql:host=localhost;dbname=alumni;"; $user = "root"; $password = ""; try{ $dbh = new PDO($dsn,$user,$password); $dbh->query('set names utf8;'); }catch(PDOException $e){ echo "连接失败".$e->getMessage(); } //pdo绑定参数操作 $stmt = $dbh->prepare("insert into alumni(gid,student_no,name) values (:gid,:student_no,:name) "); $stmt->bindParam(":gid", $gid,PDO::PARAM_STR); $stmt->bindParam(":student_no", $student_no,PDO::PARAM_STR); $stmt->bindParam(":name", $name,PDO::PARAM_STR); //使用php-excel-reader读取excel内容 $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('UTF-8'); $data->read("stu.xls"); for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { for ($j = 1; $j <= 3; $j++) { $student_no = $data->sheets[0]['cells'][$i][1]; $name = $data->sheets[0]['cells'][$i][2]; $gid = $data->sheets[0]['cells'][$i][3]; } //将获取的excel内容插入到数据库 $stmt->execute(); } echo "执行成功"; echo "最后插入的ID:".$dbh->lastInsertId(); ?> 考虑到excel的量比较大,使用了PDO的绑定操作!

‘肆’ php怎样读取excel表格内容

常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。x0dx0ax0dx0a1. 以.csv格式读取x0dx0ax0dx0a将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。x0dx0ax0dx0a优点:跨平台,效率比较高、可以读写。x0dx0ax0dx0a缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。x0dx0ax0dx0aPHP有自带的分析.csv函数:fgetcsvx0dx0ax0dx0aarray fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )x0dx0ax0dx0ahandle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。x0dx0ax0dx0alength (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。x0dx0ax0dx0adelimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。x0dx0ax0dx0aenclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。x0dx0ax0dx0afgetcsv() 出错时返回 FALSE,包括碰到文件结束时。x0dx0ax0dx0a注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。x0dx0ax0dx0a当然也可以自己手动分析字符串。x0dx0ax0dx0a还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。x0dx0ax0dx0a2. ODBC链接数据源x0dx0ax0dx0a优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。x0dx0ax0dx0a缺点:值支持windows服务器x0dx0ax0dx0a3. PHP自定义类x0dx0ax0dx0a优点:跨平台。某些类支持写操作。支持.xls二进制文件x0dx0ax0dx0a常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。x0dx0ax0dx0aphpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。x0dx0ax0dx0a该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。x0dx0ax0dx0a不过我下载回来的 (版本 2009-03-30),有两点要注意:x0dx0ax0dx0areader.php 中的下面这行要修改x0dx0ax0dx0a将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;x0dx0ax0dx0a改为 require_once ‘oleread.inc’;x0dx0ax0dx0aexample.php 中x0dx0ax0dx0a修改 $data->setOutputEncoding(’CP1251′);x0dx0ax0dx0a为 $data->setOutputEncoding(’CP936′);x0dx0ax0dx0aexample2.php 中x0dx0ax0dx0a修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));x0dx0ax0dx0a为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));x0dx0ax0dx0a不然中文会有问题。x0dx0ax0dx0a繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。x0dx0ax0dx0a修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。

‘伍’ 关于phpexcel读取excel表的问题,如下

<?
$sheet_i = 2;//行
$sheet_j = 1;//列
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
/**从第A列开始输出*/
for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
if($sheet_i = 2&&$sheet_j = 1)//自己算好输出第几行第几列
{
if($currentColumn == 'A')
{
echo GetData($val)."\t";
}else{
//echo $val;
/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
echo iconv('utf-8','gb2312', $val)."\t";
}
}
$sheet_j ++;
}
$sheet_i++;
$sheet_j = 0;//重置列数
echo "</br>";
}
echo "\n";

?>

‘陆’ php读取excel,excel下多个个工作表,该怎么读取

php有个PHPExcel扩展,是可以实现你的要求的。
我这里有个可以读取多个工作薄的自定义excel类,试试看:

<?php
/**
*excel.class.php
*/
class Excel
{
/**
* 从excel文件中取得所有数据。并转换成指定编码格式。
* $toCode 表示需要转换成的编码格式,目前扩充了utf8,gbk2312,html三种格式。
* @return 返回二维数组。
*/
static function getDataFromExl($filePath,$toCode = "utf8")
{
$fh = @fopen($filePath,'rb');

if( !$fh || filesize($filePath)==0 )
{
return -1; //文件不可读或者为空
}

$fc = fread( $fh, filesize($filePath) );

@fclose($fh);

if( strlen($fc) < filesize($filePath) )
{
return -2; //读取错误
}
$exc = new ExcelFileParser();

$res = $exc->ParseFromString($fc);

$ws_number = count($exc->worksheet['name']);//取得工作薄数量

if( $ws_number < 1 )
{
return -3;
}

for ($ws_n = 0; $ws_n < $ws_number; $ws_n++)
{
$ws = $exc -> worksheet['data'][$ws_n];
$data = $ws['cell'];
foreach($data as $k=>$v) //一行数据
{
$row = null;
foreach($v as $a=>$d) //一行数据的一个字节
{
$value = null;
if(count($d) == 1)
{
continue;
}
if($d['type'] == 0) //如果是字符类型则转换成为指定编码格式
{
$ind = $d['data'];
if( $exc->sst['unicode'][$ind] ) //返回数据编码格式
{
switch($toCode)
{
case "utf8":
$s = Strings::uc2utf8($exc->sst['data'][$ind]);
break;
case "gbk":
$s = Strings::uc2gbk($exc->sst['data'][$ind]);
break;
case "html":
$s = Strings::uc2html($exc->sst['data'][$ind]);
break;
default:
$s = Strings::uc2utf8($exc->sst['data'][$ind]);
break;
}
}
else
{
$s = $exc->sst['data'][$ind];
}
if( strlen(trim($s))==0 || $s === null )
{
$value = '';
}
else
{
$value = $s;
}
}
elseif($d['type'] == 3)
{
$time_list = explode('.', $d['data']);
$time_format = $time_list[2].'-'.$time_list[0].'-'.$time_list[1];
$timestamp = strtotime($time_format);
$value = date("Y-m-d H:i:s", $timestamp);
}
else
{
$value = $d['data'];
}
$row[$a] = $value;
}
$recordList[] = $row;
}
}
return $recordList;
}
}
require_once('./excel.class.php');
$emailData = Excel::getDataFromExl($_FILES['file_name']['tmp_name']);

热点内容
安卓开发平台怎么样 发布:2025-07-16 18:30:35 浏览:343
电话加密码 发布:2025-07-16 18:29:12 浏览:65
河马云脚本 发布:2025-07-16 18:29:03 浏览:147
格物致知编程 发布:2025-07-16 18:07:54 浏览:947
戴尔服务器系统设置如何设置 发布:2025-07-16 18:02:09 浏览:958
为什么换安卓这么难 发布:2025-07-16 17:14:44 浏览:421
转动密码锁怎么开 发布:2025-07-16 17:14:37 浏览:611
服务器和网关ip 发布:2025-07-16 17:09:35 浏览:930
如何用net映射服务器盘符 发布:2025-07-16 17:08:50 浏览:13
小飞机android 发布:2025-07-16 16:51:00 浏览:236