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

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

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)對(duì)數(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 對(duì)應(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);
 

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

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

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

廣告

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

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