為了減輕后期開(kāi)發(fā)的麻煩,寫(xiě)了這個(gè)類(lèi),用以簡(jiǎn)化輸出配置,自動(dòng)合并表頭樣式
創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、云巖網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為云巖等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
PHP_XLSXWriter :
先看例子(test.php):
輔助類(lèi) Helper.php:
如果小的話,可以直接導(dǎo)入excel文件,如果大的話,請(qǐng)先存成csv文件,然后通過(guò)mysql
的load
data導(dǎo)入數(shù)據(jù)庫(kù)
$_POST['file']取得的地址為服務(wù)器臨時(shí)保存文件的地址,并不是當(dāng)前php程序的目錄,因此會(huì)發(fā)生找不到文件的問(wèn)題,另外如果存到了沒(méi)有訪問(wèn)權(quán)限的目錄下,會(huì)出現(xiàn)不能讀。
?php
error_reporting(E_ALL); //開(kāi)啟錯(cuò)誤
set_time_limit(0); //腳本不超時(shí)
date_default_timezone_set('Europe/London'); //設(shè)置時(shí)間
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '/');//設(shè)置環(huán)境變量
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';
//$inputFileType = 'Excel5'; //這個(gè)是讀 xls的
$inputFileType = 'Excel2007';//這個(gè)是計(jì)xlsx的
//$inputFileName = './sampleData/example2.xls';
$inputFileName = './sampleData/book.xlsx';
echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'br /';
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader-load($inputFileName);
/*
$sheet = $objPHPExcel-getSheet(0);
$highestRow = $sheet-getHighestRow(); //取得總行數(shù)
$highestColumn = $sheet-getHighestColumn(); //取得總列
*/
$objWorksheet = $objPHPExcel-getActiveSheet();//取得總行數(shù)
$highestRow = $objWorksheet-getHighestRow();//取得總列數(shù)
echo 'highestRow='.$highestRow;
echo "br";
$highestColumn = $objWorksheet-getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//總列數(shù)
echo 'highestColumnIndex='.$highestColumnIndex;
echo "br /";
$headtitle=array();
for ($row = 1;$row = $highestRow;$row++)
{
$strs=array();
//注意highestColumnIndex的列數(shù)索引從0開(kāi)始
for ($col = 0;$col $highestColumnIndex;$col++)
{
$strs[$col] =$objWorksheet-getCellByColumnAndRow($col, $row)-getValue();
}
$info = array(
'word1'="$strs[0]",
'word2'="$strs[1]",
'word3'="$strs[2]",
'word4'="$strs[3]",
);
//在這兒,你可以連接,你的數(shù)據(jù)庫(kù),寫(xiě)入數(shù)據(jù)庫(kù)了
print_r($info);
echo 'br /';
}
?
1、首先我們準(zhǔn)備一個(gè)含有數(shù)據(jù)的Excel表格,表頭和數(shù)據(jù)表中的表字段相對(duì)應(yīng)。
2、在ThinkPHP中引入PHPExcel類(lèi)庫(kù)。
3、然后我們編寫(xiě)導(dǎo)入的PHP代碼。
4、然后我們編寫(xiě)導(dǎo)出的PHP代碼。
5、然后我們進(jìn)行導(dǎo)出測(cè)試發(fā)現(xiàn)可以導(dǎo)出即可。
thinkPHP實(shí)現(xiàn)將excel導(dǎo)入到數(shù)據(jù)庫(kù)中的方法體如下:
PHPExcel插件可點(diǎn)擊此處本站下載。
這里使用的是thinkphp框架的3.1版本,下載好壓縮包,框架中的extend中的vendor文件夾中新建一個(gè)名為PHPExcel的文件夾,把classes里面的內(nèi)容放到里面
下面是前端頁(yè)面
提示:我在測(cè)試的時(shí)候遇到報(bào)錯(cuò)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="導(dǎo)入"/
/form
/body
/html
下面是php的
function abcdefgwulisuibianuplod(){
$this-display();//顯示頁(yè)面
}
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(); // 取得總行數(shù)
$highestColumn = $sheet-getHighestColumn(); // 取得總列數(shù)
for($i=2;$i=$highestRow;$i++)//這個(gè)地方根據(jù)需要,一般第一行是名稱(chēng),所以從第二行開(kāi)始循環(huán),也可以從第一行開(kāi)始
{
$data['lianjieid'] = $objPHPExcel-getActiveSheet()-getCell("A".$i)-getValue();//數(shù)據(jù)庫(kù)字段和excel列相對(duì)應(yīng)
$data['yaoqingma'] = $objPHPExcel-getActiveSheet()-getCell("B".$i)-getValue();
$data['dlmima']= $objPHPExcel-getActiveSheet()-getCell("C".$i)-getValue();
$data['ljdizhi']= $objPHPExcel-getActiveSheet()-getCell("D".$i)-getValue();
M('jdb')-add($data);//插入數(shù)據(jù)庫(kù)
}
$this-success('導(dǎo)入成功!');
}else
{
$this-error("請(qǐng)選擇上傳的文件");
}
}
本文標(biāo)題:phpxlsx數(shù)據(jù)庫(kù) php讀取xlsx
鏈接分享:http://chinadenli.net/article48/hgdiep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)