1、所用的框架是Thinktp 框架
2、所用插件PHPExcel
將我們的下載的PHPExcel 放入ThinkPHP\Library\Vendor 中 具體位置看自身實(shí)際情況
導(dǎo)入讀取excl表格 vendor('PHPExcel.PHPExcelUser'); //引用文件
$excel=new \PHPExcelUser($file); //打開$fileexcl文件;
$data=$excel->excelImport(0); // 0代表從第一行開始
導(dǎo)入后通過循環(huán)對數(shù)據(jù)進(jìn)行處理和保存;
導(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)入時(shí)間問題 在導(dǎo)入表格中的時(shí)間格式需要轉(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;
}
這樣就能到就是一個(gè)標(biāo)準(zhǔn)的時(shí)間格式,不然就是一個(gè)數(shù)字(非時(shí)間戳);
長數(shù)字字符串在表格中被轉(zhuǎn)換成了科學(xué)計(jì)數(shù)法的數(shù)字最簡單的方法在字符串前面加個(gè)空格或者用
$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)的情況處理,所以會(huì)拋出“Unknown codepage: 10008”異常。
找到PHPExcel/Shared/CodePage.php 文件添加
case 10008: return 'MAC'; break; //在mac蘋果系統(tǒng)下面會(huì)出現(xiàn)這個(gè)問題
四、下載出來亂碼情況一般是緩沖問題
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)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://m.oulysa.com/news/5053.html