網(wǎng)站制作之PhpExcel數(shù)據(jù)批量導入導出(淄博網(wǎng)站制作)

2023-12-25    分類: 網(wǎng)站建設

1、所用的框架是Thinktp 框架
2、所用插件PHPExcel
將我們的下載的PHPExcel 放入ThinkPHP\Library\Vendor 中 具體位置看自身實際情況
導入讀取excl表格  vendor('PHPExcel.PHPExcelUser');  //引用文件
  $excel=new \PHPExcelUser($file); //打開$fileexcl文件;
  $data=$excel->excelImport(0); // 0代表從第一行開始
導入后通過循環(huán)對數(shù)據(jù)進行處理和保存;
導出數(shù)據(jù)  $excel=new \PHPExcelUser($FileName);  //這里的$FileName是文件的導出名稱;
  $excel->excelExport($data,$title);  //這里$data為數(shù)據(jù),$title 為表格的標題;

導入導出比較簡單,這里整理了一些遇到的問題:
導入時間問題   在導入表格中的時間格式需要轉(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;
}
這樣就能到就是一個標準的時間格式,不然就是一個數(shù)字(非時間戳);

長數(shù)字字符串在表格中被轉(zhuǎn)換成了科學計數(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 對應的情況處理,所以會拋出“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表導出
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ù)標題一維數(shù)組
$excel->excelExport($data,$title);
 

以上就是關于網(wǎng)站制作之PhpExcel數(shù)據(jù)批量導入導出(淄博網(wǎng)站制作),希望對你有幫助,更多內(nèi)容關注創(chuàng)新互聯(lián)。

網(wǎng)站題目:網(wǎng)站制作之PhpExcel數(shù)據(jù)批量導入導出(淄博網(wǎng)站制作)
本文鏈接:http://muchs.cn/news22/310322.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、響應式網(wǎng)站服務器托管、域名注冊、云服務器電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名