當前位置:首頁 » 編程語言 » 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 09:23:23 瀏覽:972
基於特徵匹配演算法 發布:2025-07-16 09:18:23 瀏覽:46
夢香神奇寶貝伺服器的ip 發布:2025-07-16 09:14:07 瀏覽:212
電子密碼手套箱是什麼 發布:2025-07-16 09:13:27 瀏覽:799
手機連接資料庫 發布:2025-07-16 09:13:23 瀏覽:132
廣東伺服器存儲虛擬主機 發布:2025-07-16 09:13:17 瀏覽:326
絕地逃亡電腦怎麼設置最低配置 發布:2025-07-16 09:10:50 瀏覽:425
聯想z5的配置如何 發布:2025-07-16 09:08:21 瀏覽:879
電腦加密軟體哪個好 發布:2025-07-16 09:05:47 瀏覽:320
王者榮耀攻速疊加演算法 發布:2025-07-16 09:04:23 瀏覽:945