導航:首頁 > 網路數據 > excel大數據導入php

excel大數據導入php

發布時間:2022-09-28 09:19:01

㈠ 原生PHP代碼實現excel導入,並添加數據到資料庫.

我用的代碼是:
<?
//連接資料庫文件
$connect=mysql_connect("localhost","admin","admin") or die("鏈接資料庫失敗!");
//連接資料庫(test)
mysql_select_db("testcg",$connect) or die (mysql_error());

$temp=file("test.csv");//連接EXCEL文件,格式為了.csv
for ($i=0;$i <count($temp);$i++)
{
$string=explode(",",$temp[$i]);//通過循環得到EXCEL文件中每行記錄的值
//將EXCEL文件中每行記錄的值插入到資料庫中
$q="insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');";
mysql_query($q) or die (mysql_error());

if (!mysql_error());
{
echo " 成功導入數據!";
}
echo $string[4]."\n";
unset($string);
}
?>

--------------------------------------------------------------------------------
phpexcel或者pear的一個組件 ,國內有一個excelclass的插件
都是用來處理excel的,前2個功能都比較強大,對編碼的支持也都不錯,推薦使用pear的那個,名字好像叫spreadsheet reader

phpexcel比較費資源,不過並不是所有的excel都能讀取

樓主可以到這里去看看 pear.php.net
--------------------------------------------------------------------------------
頂樓上的回答~~順便接個分!嘿嘿
--------------------------------------------------------------------------------
AdO直接上傳

注意有些字元mysql或ADO可能不支持
--------------------------------------------------------------------------------
首先確認你的資料庫是什麼編碼的,以utf-8為例,
你首先打開excel 文件,然後保存,選擇為另存為.csv文件。
然後用文本編輯器打開.csv文件,另存為utf-8的csv
然後你寫php 可以使用php 的getcsv 打開(這樣確保你有的欄位中含有,而導致解析錯誤),然後把解析的結果導入到資料庫中。
然後完了。

㈡ php如何實現上傳導入excel數據

難道你導入的時候不是選擇的本地 文件嗎?input框獲取之後 提交過去就可以導入了啊 phpexcel中有例子的啊 可以看看簡單的嘛 基本上 按那個例子改點東西就可以用了啊

㈢ 如何用php實現將excel導入到資料庫中

把excel 改為 cvs文件
<?
//連接資料庫文件
$connect=mysql_connect("localhost","admin","admin") or die("鏈接資料庫失敗!");
//連接資料庫(test)
mysql_select_db("testcg",$connect) or die (mysql_error());
$temp=file("test.csv");//連接EXCEL文件,格式為了.csv
for ($i=0;$i <count($temp);$i++)
{
$string=explode(",",$temp[$i]);//通過循環得到EXCEL文件中每行記錄的值
//將EXCEL文件中每行記錄的值插入到資料庫中
$q="insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');";
mysql_query($q) or die (mysql_error());

if (!mysql_error());
{
echo " 成功導入數據!";
}
echo $string[4]."\n";
unset($string);
}
?>

㈣ php怎麼導入大量數據的excel

php導出大量數據的Excel:
PHP從資料庫分多次讀取100萬行記錄,和分多次將100萬行寫入文本文件都沒問題
Excel可以支持100萬行記錄,Excel 2003最大支持65536行,從2007版開始支持104萬行了,目前2007的盜版應該比較普及了-_-! 問清楚客戶是什麼版本
要導出excel的理由是非常充分和正確的,應該繼續堅持。業務人員最熟悉的就是Excel,實在不熟悉現學現用也比別的快。只是要注意,當數據量達到10萬行這個級別時,Excel的公式填充將會非常非常慢,如果再有LOOKUP()公式,基本上十分鍾內處理CPU滿載進程管理器殺不掉的狀態,這時候其實xampp + phpmyadmin是一個易用性和性能都最平衡的選擇
PHPExcel輸出的是Excel XML格式,有個XML頭和尾,中間是數據Body,需要將100萬行都賦值給一個數組才可以調用PHPExcel->write(),這容易導致PHP執行超時或者內存超限,不妨調整一下php.ini配置,把超時時間和內存限制都改到很大
如果是輸出csv格式,那就太簡單了,你的問題可能是沒給欄位內容加引號,加上引號再調用fputcsv試試?其實fputcsv做的事情特別簡單,你甚至可以不管它,自己把CSV文件的每一行拼接好了之後用file_put_contents寫入

㈤ PHP導入EXCEL到資料庫的問題。

$_POST['file']取得的地址為伺服器臨時保存文件的地址,並不是當前php程序的目錄,因此會發生找不到文件的問題,另外如果存到了沒有訪問許可權的目錄下,會出現不能讀。

㈥ 如何用php實現將excel導入到資料庫中

把來excel
改為
cvs文件
?
//連接自資料庫文件
$connect=mysql_connect("localhost","admin","admin")
or
die("鏈接資料庫失敗!");
//連接資料庫(test)
mysql_select_db("testcg",$connect)
or
die
(mysql_error());
$temp=file("test.csv");//連接EXCEL文件,格式為了.csv
for
($i=0;$i
<count($temp);$i++)
{
$string=explode(",",$temp[$i]);//通過循環得到EXCEL文件中每行記錄的值
//將EXCEL文件中每行記錄的值插入到資料庫中
$q="insert
into
ceshi
(name,num,dom)
values('$string[0]','$string[1]','$string[2]');";
mysql_query($q)
or
die
(mysql_error());
if
(!mysql_error());
{
echo
"
成功導入數據!";
}
echo
$string[4]."\n";
unset($string);
}
?

㈦ 導入excel文件,後端php處理導入的數據並存入資料庫,需要前後端結合的demo!

thinkphp3.2和phpexcel導入最基本用法
先整個最基礎的代碼,理解了這個,後面的就非常簡單了

$file_name='./Upload/excel/123456.xls';
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.IOFactory");
$objReader=PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel=$objReader->load($file_name,$encode='utf-8');
$sheet=$objPHPExcel->getSheet(0);
$highestRow=$sheet->getHighestRow();//取得總行數
$highestColumn=$sheet->getHighestColumn();//取得總列數

$s=$objPHPExcel->getActiveSheet()->getCell("A2")->getValue();

表格內容:

publicfunctionupload(){
$files=$_FILES['exl'];


//exl格式,否則重新上傳
if($files['type']!='application/vnd.ms-excel'){
$this->error('不是Excel文件,請重新上傳');
}

//上傳
$upload=newThinkUpload();//實例化上傳類
$upload->maxSize=3145728;//設置附件上傳大小
$upload->exts=array('xls');//設置附件上傳類型
$upload->rootPath='./Upload/';//設置附件上傳根目錄
$upload->savePath='excel/';//設置附件上傳(子)目錄
//$upload->subName=array('date','Ym');
$upload->subName='';
//上傳文件
$info=$upload->upload();

$file_name=$upload->rootPath.$info['exl']['savepath'].$info['exl']['savename'];
$exl=$this->import_exl($file_name);

//去掉第exl表格中第一行
unset($exl[0]);

//清理空數組
foreach($exlas$k=>$v){
if(empty($v)){
unset($exl[$k]);
}
};
//重新排序
sort($exl);

$count=count($exl);
//檢測表格導入成功後,是否有數據生成
if($count<1){
$this->error('未檢測到有效數據');
}

//開始組合數據
foreach($exlas$k=>$v){

$goods[$k]['goods_sn']=$v;

//查詢資料庫
$where['goods_sn']=array('like','%'.$v.'%');
$res=M('goods')->where($where)->find();

$goods[$k]['goods_name']=$res['goods_name'];
$goods[$k]['goods_thumb']=$res['goods_thumb'];
if($res){
//是否匹配成功
$goods[$k]['is_match']='1';
$f+=1;
}else{
//匹配失敗
$goods[$k]['is_match']='0';
$w+=1;
}

}
//實例化數據
$this->assign('goods',$goods);
//print_r($f);

//統計結果
$total['count']=$count;
$total['success']=$f;
$total['error']=$w;
$this->assign('total',$total);

//刪除Excel文件
unlink($file_name);
$this->display('info');

}
/*處理上傳exl數據
*$file_name文件路徑
*/
publicfunctionimport_exl($file_name){
//$file_name='./Upload/excel/123456.xls';
import("Org.Util.PHPExcel");//這里不能漏掉
import("Org.Util.PHPExcel.IOFactory");
$objReader=PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel=$objReader->load($file_name,$encode='utf-8');
$sheet=$objPHPExcel->getSheet(0);
$highestRow=$sheet->getHighestRow();//取得總行數
$highestColumn=$sheet->getHighestColumn();//取得總列數

for($i=1;$i<$highestRow+1;$i++){
$data[]=$objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();
}
return$data;
}

有問題一定要及時弄清楚

㈧ PHP Excel大批量導入崩潰怎麼辦

項目需要批量導入excel文件,如果裡面有重復的數據要怎麼處理呢?每插入一次數據都要到資料庫查詢么?
回復內容:
項目需要批量導入excel文件,如果裡面有重復的數據要怎麼處理呢?每插入一次數據都要到資料庫查詢么?

1、如果裡面有重復的數據要怎麼處理呢?

1

<code>可以先判斷資料庫是否有該數據。</code>

2、每插入一次數據都要到資料庫查詢么

1

<code>是的。</code>

先去重得到沒有重復的數據,再批量插入資料庫。也可以嘗試MYSQL中的insert ignore into或 replace into

如果查詢比較慢,對不能重復的欄位加唯一鍵,然後用INSERT IGNORE INTO
php批量導入數據出錯
我現在要做的是,把一個產品數據從EXCEL中導入到PHP的MYSQL中,導入的過程中,總是會提示「Allowed memory size of 167772160 bytes exhausted (tried to allocate 689919 bytes) in D:\wamp\www\Company\proct\admin\uploadOrder.php on line 167」這個錯誤,然後我分成第100條導入時,就不會提示這個錯誤,這個是不是內存溢出,有沒有好的解決方法呢?

------解決方案--------------------
php.ini中講memory_limit選項設置大一點,然後重啟apache或nginx就行了
------解決方案--------------------
文件太大了,這樣的話可以用source命令直接導入!
------解決方案--------------------

㈨ php導入excel 怎麼獲取excel表格數據

常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優缺點。個人推薦用第三種方法,因為它可以跨平台使用。

1. 以.csv格式讀取

將.xls轉換成.csv的文本格式,然後再用PHP分析這個文件,和PHP分析文本沒有什麼區別。

優點:跨平台,效率比較高、可以讀寫。

缺點:只能直接使用.csv的文件,如果經常接受.xls二進制文件的話需要手工轉換,不能自動化。一個文件只有一個SHEET。

PHP有自帶的分析.csv函數:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )

handle 一個由 fopen()、popen() 或 fsockopen() 產生的有效文件指針。

length (可選)必須大於 CVS 文件內最長的一行。在 PHP 5 中該參數是可選的。如果忽略(在 PHP 5.0.4 以後的版本中設為 0)該參數的話,那麼長度就沒有限制,不過可能會影響執行效率。

delimiter (可選)設置欄位分界符(只允許一個字元),默認值為逗號。

enclosure (可選)設置欄位環繞符(只允許一個字元),默認值為雙引號。該參數是在 PHP 4.3.0 中添加的。 和 fgets() 類似,只除了 fgetcsv() 解析讀入的行並找出 CSV 格式的欄位然後返回一個包含這些欄位的數組。

fgetcsv() 出錯時返回 FALSE,包括碰到文件結束時。

注意: CSV 文件中的空行將被返回為一個包含有單個 null 欄位的數組,不會被當成錯誤。

當然也可以自己手動分析字元串。

還可以利用fputcsv函數將行格式化為 CSV 並寫入文件指針。

2. ODBC鏈接數據源

優點:支持多種格式,cvs, xls等。支持讀寫,使用標准SQL語言,和SQLSERVER、MYSQL資料庫幾乎完全一樣。

缺點:值支持windows伺服器

3. PHP自定義類

優點:跨平台。某些類支持寫操作。支持.xls二進制文件

常用的類有phpExcelReader、PHPExcel。其中後者支持讀寫,但是需要php5.2以上版本。

phpExcelReader是專門用來讀取文件的。返回一個數組,包含表格的所有內容。

該 class 使用的方法可以參考網站下載回來的壓縮檔中的 example.php。

不過我下載回來的 (版本 2009-03-30),有兩點要注意:

reader.php 中的下面這行要修改

將 require_once 『Spreadsheet/Excel/Reader/OLERead.php』;

改為 require_once 『oleread.inc』;

example.php 中

修改 $data->setOutputEncoding(』CP1251′);

為 $data->setOutputEncoding(』CP936′);

example2.php 中

修改 nl2br(htmlentities($data->sheets[$sheet]['

㈩ 利用php導入excel文件

【步驟1】在前台html頁面進行上傳文件

<formmethod="post"action="php文件"enctype="multipart/form-data">
<h3>導入Excel表:</h3><inputtype="file"name="file_stu"/>
<inputtype="submit"value="導入"/>
</form>

【步驟2】在對應的php文件進行文件的處理

if(!empty($_FILES['file_stu']['name']))
{$tmp_file=$_FILES['file_stu']['tmp_name'];$file_types=explode(".",$_FILES['file_stu']['name']);$file_type=$file_types[count($file_types)-1];
/*判別是不是.xls文件,判別是不是excel文件*/if(strtolower($file_type)!="xls"){$this->error('不是Excel文件,重新上傳');}
/*設置上傳路徑*/$savePath=SITE_PATH.'/public/upfile/Excel/';
/*以時間來命名上傳的文件*/$str=date('Ymdhis');$file_name=$str.".".$file_type;
/*是否上傳成功*/if(!($tmp_file,$savePath.$file_name)){$this->error('上傳失敗');}
/*

*對上傳的Excel數據進行處理生成編程數據,這個函數會在下面第三步的ExcelToArray類中

注意:這里調用執行了第三步類裡面的read函數,把Excel轉化為數組並返回給$res,再進行資料庫寫入

*/$res=Service('ExcelToArray')->read($savePath.$file_name);
/*

重要代碼 解決Thinkphp M、D方法不能調用的問題

如果在thinkphp中遇到M 、D方法失效時就加入下面一句代碼

*/

//spl_autoload_register(array('Think','autoload'));

/*對生成的數組進行資料庫的寫入*/

foreach($resas$k=>$v){if($k!=0){$data['uid']=$v[0];$data['password']=sha1('111111');$data['email']=$v[1];
$data['uname']=$v[3];
$data['institute']=$v[4];$result=M('user')->add($data);if(!$result){$this->error('導入資料庫失敗');}}}
}
【步驟3】ExcelToArrary類,用來引用phpExcel並處理Excel數據的
{
publicfunction__construct(){
/*導入phpExcel核心類注意:你的路徑跟我不一樣就不能直接復制*/include_once('./Excel/PHPExcel.php');}
/**

* 讀取excel $filename 路徑文件名 $encode 返回數據的編碼 默認為utf8

*以下基本都不要修改

*/

publicfunctionread($filename,$encode='utf-8'){
$objReader=PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel=$objReader->load($filename);
$objWorksheet=$objPHPExcel->getActiveSheet();
$highestRow=$objWorksheet->getHighestRow();$highestColumn=$objWorksheet->getHighestColumn();$highestColumnIndex=PHPExcel_Cell::columnIndexFromString($highestColumn);$excelData=array();for($row=1;$row<=$highestRow;$row++){for($col=0;$col<$highestColumnIndex;$col++){$excelData[$row][]=(string)$objWorksheet->getCellByColumnAndRow($col,$row)->getValue();}}return$excelData;
}

}

閱讀全文

與excel大數據導入php相關的資料

熱點內容
linuxshort幾個位元組 瀏覽:410
怎麼查看文件位元組多少 瀏覽:500
男男大尺度電影在線視頻 瀏覽:850
蘋果6p玩王者榮耀卡嗎 瀏覽:395
和諧片網站 瀏覽:966
北京錦平寶網路技術有限公司 瀏覽:791
隔世怨靈片段 瀏覽:235
泰國血腥犯罪暴力電影 瀏覽:227
普陀單抽文件櫃多少錢 瀏覽:569
觀看香港網站 瀏覽:816
文件簽字有效 瀏覽:247
抖音直播電影不侵權的電影有哪些 瀏覽:439
geodatabase資料庫設計 瀏覽:306
如何清除word編號格式 瀏覽:404
鹽城哪裡有學數控編程 瀏覽:954
微信設置不用支付密碼 瀏覽:412
邱淑珍三極有哪些靈 瀏覽:803
穿越少狼世界 瀏覽:68
電影搜索 英語翻譯 瀏覽:865

友情鏈接