1、所用的框架是Thinktp 框架
2、所用插件PHPExcel
將我們的下載的PHPExcel 放入ThinkPHP\Library\Vendor 中 具體位置看自身實際情況
導(dǎo)入讀取excl表格 vendor('PHPExcel.PHPExcelUser'); //引用文件
$excel=new \PHPExcelUser($file); //打開$fileexcl文件;
$data=$excel->excelImport(0); // 0代表從第一行開始
導(dǎo)入后通過循環(huán)對數(shù)據(jù)進行處理和保存;
導(dǎo)出數(shù)據(jù) $excel=new \PHPExcelUser($FileName); //這里的$FileName是文件的導(dǎo)出名稱;
$excel->excelExport($data,$title); //這里$data為數(shù)據(jù),$title 為表格的標(biāo)題;
導(dǎo)入導(dǎo)出比較簡單,這里整理了一些遇到的問題:
導(dǎo)入時間問題 在導(dǎo)入表格中的時間格式需要轉(zhuǎn)換一下,轉(zhuǎn)換函數(shù)如下:
function excelTime($date, $time = false) {
if(function_exists('GregorianToJD')){
if (is_numeric( $date )) {
$jd = GregorianToJD( 1, 1, 1970 );
$gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );
$date = explode( '/', $gregorian );
$date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )
."-". str_pad( $date [0], 2, '0', STR_PAD_LEFT )
."-". str_pad( $date [1], 2, '0', STR_PAD_LEFT )
. ($time ? " 00:00:00" : '');
return $date_str;
}
}else{
$date=$date>25568?$date+1:25569;
/*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/
$ofs=(70 * 365 + 17+2) * 86400;
$date = date("Y-m-d",($date * 86400) - $ofs).($time ? " 00:00:00" : '');
}
return $date;
}
這樣就能到就是一個標(biāo)準(zhǔn)的時間格式,不然就是一個數(shù)字(非時間戳);
長數(shù)字字符串在表格中被轉(zhuǎn)換成了科學(xué)計數(shù)法的數(shù)字最簡單的方法在字符串前面加個空格或者用
$objActSheet->setCellValueExplicit('A1','330602198804224688', PHPExcel_Cell_DataType::TYPE_STRING);
將a1列的定義為字符串
Unknown codepage: 10008 PHPExcel_Shared_CodePage::NumberToName(%d) PHPExcel/Shared/CodePage.php 98 break()原因是 NumberToName() 方法中沒有 10008 對應(yīng)的情況處理,所以會拋出“Unknown codepage: 10008”異常。
找到PHPExcel/Shared/CodePage.php 文件添加
case 10008: return 'MAC'; break; //在mac蘋果系統(tǒng)下面會出現(xiàn)這個問題
四、下載出來亂碼情況一般是緩沖問題
ob_end_clean(); //清除緩沖區(qū),避免亂碼
vendor('PHPExcel.PHPExcelUser');
$file=.'/cs.xlsx';//這是路徑
$excel=new \PHPExcelUser($file);
$data=$excel->excelImport(1);
//excel表導(dǎo)出
ob_end_clean();//清除緩沖區(qū),避免亂碼
header("Content-type: text/html; charset=utf-8");
vendor('PHPExcel.PHPExcelUser');
$file='cs.xlsx';
$excel=new \PHPExcelUser($file);
$data=array();//數(shù)據(jù)二維數(shù)組
$title=array();//數(shù)據(jù)標(biāo)題一維數(shù)組
$excel->excelExport($data,$title);
文章題目:網(wǎng)站制作之PhpExcel數(shù)據(jù)批量導(dǎo)入導(dǎo)出
鏈接URL:http://redsoil1982.com.cn/news/247905.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站制作等
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)