導航:首頁 > 編程語言 > php如何導入excel

php如何導入excel

發布時間:2022-06-20 00:47:48

php中如何將execl的數據導入到資料庫中

1.使用PHP
Excel
Parser
Pro軟體,但是這個軟體為收費軟體;
2.可將EXCEL表保存為CSV格式,然後通過
phpmyadmin
或者SQLyog導入,SQLyog導入的方法為:
·將EXCEL表另存為CSV形式;
·打開SQLyog,對要導入的表格
右擊
,點擊「導入」-「導入使用載入本地CSV數據」;
·在彈出的對話框中,點擊「改變..」,把選擇「填寫excel友好值」,點擊確定;
·在「從文件導入」中選擇要導入的CSV文件路徑,點擊「導入」即可導入數據到表上;
3.一個比較笨的手工方法,就是先利用excel生成
sql語句
,然後再到mysql中運行,這種方法適用於
excel表格
導入到各類
sql資料庫

·假設你的表格有A、B、C三
列數據
,希望導入到你的資料庫中表格tablename,對應的欄位分別是col1、col2、col3
·在你的表格中增加一列,利用excel的公式自動生成sql語句,具體方法如下:
1)增加一列(假設是D列)
2)在第一行的D列,就是D1中輸入公式:
=CONCATENATE("insert
into
tablename
(col1,col2,col3)
values
(",A1,",",B1,",",C1,");")
3)此時D1已經生成了如下的sql語句:
insert
into
table
(col1,col2,col3)
values
('a','11','33');
4)將D1的公式復制到所有行的D列(就是用滑鼠點住D1單元格的右下角一直拖拽下去啦)
5)此時D列已經生成了所有的sql語句
6)把D列復制到一個純文本文件中,假設為sql.txt
·把sql.txt放到資料庫中運行即可,你可以用命令行導入,也可以用phpadmin運行。

⑵ 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表格到資料庫,根據表格內的欄位修改對應數據,請問大神怎麼導入資料庫

這種直接使用資料庫管理工具導入。

⑷ 如何用php 製作導入excel

常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優缺點。個人推薦用第三種方法,因為它可以跨平台使用。 1. 以.csv格式讀取 將.xls轉換成.csv的文本格式,然後再用PHP分析這個文件,和PHP分析文本沒有什麼區別。

⑸ PHP網頁怎麼導入Excel的數據

參考代碼如下:
<?php
// 1.引用ExcelReader類文件
require_once 'Excel/reader.php';
// 2.實例化讀取Excel的類
$data = new Spreadsheet_Excel_Reader();
// 3.設置輸出編碼
$data->setOutputEncoding('utf-8');
// 4.讀取指定的excel
$data->read('test.xls');

// 5.循環輸出每一行數據,這里讀取的是Excel的第一個Sheet表格
// sheets[0]['numRows']代錶行數
// sheets[0]['numCols']代表列數
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { // 遍歷行
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { // 遍歷列
echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo "\n";
}

?>

⑹ PHP如何導入導出Excel

最近在PHP培訓學習過程中,需要開發一個模塊,把系統中的一些數據導出成Excel,修改後再導回系統。就趁機對這個研究了一番,下面進行一些總結。雖然我們在平時用的也有一些,但沒有作者列出來的全,寫excel的時候,我用過pear的庫,也用過pack壓包的頭,同樣那些利用smarty等作的簡單替換xml的也用過,csv的就更不用談了。但是在讀的時候,只用過一種,具體是什麼忘了,要回去翻代碼了。
基本上導出的文件分為兩種:
1:類Excel格式,這個其實不是傳統意義上的Excel文件,只是因為Excel的兼容能力強,能夠正確打開而已。修改這種文件後再保存,通常會提示你是否要轉換成Excel文件。優點:簡單。缺點:難以生成格式,如果用來導入需要自己分別編寫相應的程序。2:Excel格式,與類Excel相對應,這種方法生成的文件更接近於真正的Excel格式。
如果導出中文時出現亂碼,可以嘗試將字元串轉換成gb2312,例如下面就把$yourStr從utf-8轉換成了gb2312:$yourStr = mb_convert_encoding(」gb2312″, 「UTF-8″, $yourStr);
下面詳細列舉幾種方法。
1:利用smarty,生成符合Excel規范的XML或HTML文件支持格式,非常完美的導出方案。不過導出來的的本質上還是XML文件,如果用來導入就需要另外處理了。詳細內容請見rardge大俠的帖子:http://bbs.chinaunix.net/viewthread.php?tid=745757
需要注意的是如果導出的表格行數不確定時,最好在模板中把」ss:ExpandedColumnCount=」5″ ss:ExpandedRowCount=」21″」之類的東西刪掉。

2、利用pack函數列印出模擬Excel格式的斷句符號,這種更接近於Excel標准格式,用office2003修改後保存,還不會彈出提示,推薦用這種方法。缺點是無格式。
PHP代碼<?php // Send Header header(」Pragma: public」); header(」Expires: 0″); header(」Cache-Control: must-revalidate, post-check=0, pre-check=0″); header(」Content-Type: application/force-download」); header(」Content-Type: application/octet-stream」); header(」Content-Type: application/download」);; header(」Content-Disposition: attachment;filename=test.xls 「); header(」Content-Transfer-Encoding: binary 「); // XLS Data Cell xlsBOF(); xlsWriteLabel(1,0,」My excel line one」); xlsWriteLabel(2,0,」My excel line two : 「); xlsWriteLabel(2,1,」Hello everybody」); xlsEOF(); function xlsBOF() { echo pack(」ssssss」, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0); return; } function xlsEOF() { echo pack(」ss」, 0×0A, 0×00); return; } function xlsWriteNumber($Row, $Col, $Value) { echo pack(」sssss」, 0×203, 14, $Row, $Col, 0×0); echo pack(」d」, $Value); return; } function xlsWriteLabel($Row, $Col, $Value ) { $L = strlen($Value); echo pack(」ssssss」, 0×204, 8 + $L, $Row, $Col, 0×0, $L); echo $Value; return; } ?> 不過筆者在64位linux系統中使用時失敗了,斷句符號全部變成了亂碼。
3、使用製表符、換行符的方法 製表符」\t」用戶分割同一行中的列,換行符」\t\n」可以開啟下一行。 <?php header(」Content-Type: application/vnd.ms-execl」); header(」Content-Disposition: attachment; filename=myExcel.xls」); header(」Pragma: no-cache」); header(」Expires: 0″); /*first line*/ echo 「hello」.」\t」; echo 「world」.」\t」; echo 「\t\n」; /*start of second line*/ echo 「this is second line」.」\t」; echo 「Hi,pretty girl」.」\t」; echo 「\t\n」;

⑺ 怎麼使用php把表格中的數據導入到excel中

下面是我寫的一個PHP導出數據到CSV問價的函數,你到時候直接調用就行了

/**
*導出CSV文件
*@paramstring$fileName 文件名字
*@paramstring|array$data導出數據,csv格式的字元串|數值數組
*@paramstring$to_encoding目標轉換編碼
*@paramstring$from_encoding當前編碼
*/
functionexportCSV($fileName='',$data='',$to_encoding='gb2312',$from_encoding='utf-8'){
$fileName=empty($fileName)?date('YmdHis'):$fileName;
//文件標簽
Header("Content-type:application/octet-stream");
header("Content-type:application/vnd.ms-excel;charset=$from_encoding");
Header("Content-Disposition:attachment;filename=$fileName.csv");

$str='';
if($data){
if(is_array($data)){
foreach($dataas$v){
if(is_array($v)){
foreach($vas$vo){
$str.=(is_numeric($vo)?"'".$vo:$vo."").",";
}
$str=trim($str,",")." ";
}else{
$str.=(is_numeric($v)?"'".$v:$v).",";
}
}
$str=trim($str,",")." ";
}else{
$str=$data;
}
}

echomb_convert_encoding($str,"gb2312","utf-8");
exit;
}

⑻ thinkphp 怎麼把資料庫導入excel

本文實例講述了thinkPHP實現將excel導入到資料庫中的方法。分享給大家供大家參考,具體如下: PHPExcel插件可點擊此處本站下載。 這里使用的是thinkphp框架的3.1版本,下載好壓縮包,框架中的extend中的vendor文件夾中新建一個名為PHPExcel的文件夾,把classes裡面的內容放到裡面 下面是前端頁面 提示:我在測試的時候遇到報錯exception 'PHPExcel_Reader_Exception' with message 'The filename 原因是由於excel的文件後綴可能不同,我的文件後綴是xlsx,然後給把他另存為了xls的文件,就可以了 <html> <head> </head> <body> <form action="{pigcms::U('Jdb/abcdefgwulisuibian')}" method="post" enctype="multipart/form-data"> <input type="file" name="import"/> <input type="hidden" name="table" value="tablename"/> <input type="submit" value="導入"/> </form> </body> </html> 下面是php的 function abcdefgwulisuibianuplod(){ $this->display();//顯示頁面 } function abcdefgwulisuibian(){ if (!empty($_FILES)) { import("@.ORG.UploadFile"); $config=array( 'allowExts'=>array('xlsx','xls'), 'savePath'=>'./Public/upload/', 'saveRule'=>'time', ); $upload = new UploadFile($config); if (!$upload->upload()) { $this->error($upload->getErrorMsg()); } else { $info = $upload->getUploadFileInfo(); } vendor("PHPExcel.PHPExcel"); $file_name=$info[0]['savepath'].$info[0]['savename']; $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=2;$i<=$highestRow;$i++)//這個地方根據需要,一般第一行是名稱,所以從第二行開始循環,也可以從第一行開始 { $data['lianjieid'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//資料庫欄位和excel列相對應 $data['yaoqingma'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue(); $data['dlmima']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue(); $data['ljdi']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue(); M('jdb')->add($data);//插入資料庫 } $this->success('導入成功!'); }else { $this->error("請選擇上傳的文件"); } } 更多關於thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《ThinkPHP常用方法總結》、《smarty模板入門基礎教程》及《PHP模板技術總結》。 希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。

⑼ 如何利用ThinkPHP框架實現Excel數據導入和導出

首先,將PHPExcel文件放入到vendor目錄下面:

備註:ThinkPHP3.1的路徑是:./ThinkPHP/Extend/Vendor/;ThinkPHP3.2的路徑是:./ThinkPHP/Library/Vendor/;

數據導出功能的實現:

編寫導出為Excel的函數exportExcel:

public function exportExcel($expTitle,$expCellName,$expTableData){
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名稱
$fileName = $_SESSION['account'].date('_YmdHis');//文件輸出的文件名
$cellNum = count($expCellName);
$dataNum = count($expTableData);

vendor("PHPExcel.PHPExcel");
$objPHPExcel = new PHPExcel();//ThinkPHP3.1的寫法

$objPHPExcel = new \PHPExcel();//ThinkPHP3.2的寫法,有命名空間的概念

$cellName =
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');

$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合並單元格

//
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',
$expTitle.' Export time:'.date('Y-m-d H:i:s'));
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){

$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),
$expTableData[$i][$expCellName[$j][0]]);
}
}

header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口列印inline本窗口列印
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//ThinkPHP3.1的寫法

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//ThinkPHP3.2的寫法,有命名空間的概念
$objWriter->save('php://output');
exit;
}

3.讀取數據,調用數據調用數據導出函數exportExcel:

function expUser(){//導出Excel
$xlsName = "User";
$xlsCell = array( //設置欄位名和列名的映射
array('id','賬號序列'),
array('truename','名字'),
array('sex','性別'),
array('res_id','院系'),
array('sp_id','專業'),
array('class','班級'),
array('year','畢業時間'),
array('city','所在地'),
array('company','單位'),
array('cheng','職稱'),
array('wu','職務'),
array('jibie','級別'),
array('tel','電話'),
array('qq','qq'),
array('email','郵箱'),
array('honor','榮譽'),
array('remark','備注')
);
$xlsModel = M('Member');

$xlsData =
$xlsModel->Field('id,truename,sex,res_id,sp_id,class,year,city,company,cheng,wu,jibie,tel,qq,email,honor,remark')->select();

//將sex欄位中1和0分貝裝換為「男」和「女」

foreach ($xlsData as $k => $v)
{
$xlsData[$k]['sex']=$v['sex']==1?'男':'女';
}
$this->exportExcel($xlsName,$xlsCell,$xlsData);

}

⑽ 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相關的資料

熱點內容
不會數學英語如何編程 瀏覽:88
如何能知道網站伺服器地址 瀏覽:648
程序員月薪5萬難嗎 瀏覽:138
如何評價程序員 瀏覽:802
雲虛機和伺服器的區別 瀏覽:403
廣西柳州壓縮機廠 瀏覽:639
arm開發編譯器 瀏覽:833
51單片機的核心 瀏覽:746
看電視直播是哪個app 瀏覽:958
將c源程序編譯成目標文件 瀏覽:787
再要你命3000pdf 瀏覽:558
ai軟體解壓軟體怎麼解壓 瀏覽:520
文件夾怎樣設置序列號 瀏覽:963
javascriptgzip壓縮 瀏覽:248
易語言怎麼取出文件夾 瀏覽:819
蘋果xs手機加密app哪裡設置 瀏覽:605
超聲霧化器與壓縮霧化器 瀏覽:643
模擬實現進程調度演算法 瀏覽:388
現在的壓縮包都是加密 瀏覽:331
施工員找工作去哪個app 瀏覽:632