摘要:關(guān)于的包的使用筆記關(guān)于安裝官網(wǎng)已經(jīng)很詳細了不再描述關(guān)于導(dǎo)入導(dǎo)入的話只有幾個小地方需要注意導(dǎo)入的時候會有產(chǎn)生一些的在循環(huán)遍歷導(dǎo)入的數(shù)據(jù)的時候主動忽略關(guān)于中文或者亂碼問題或者在配置文件在安裝這個模塊的文檔有介紹怎么生成這個文件
關(guān)于laravel5的excel包maatwebsite/excel的使用筆記 關(guān)于安裝
官網(wǎng)已經(jīng)很詳細了,不再描述.
http://www.maatwebsite.nl/laravel-excel/docs/getting-started
導(dǎo)入的話只有幾個小地方需要注意:
導(dǎo)入的時候會有產(chǎn)生一些null的cells
$reader->ignoreEmpty(); //or //在循環(huán)遍歷導(dǎo)入的數(shù)據(jù)的時候主動忽略null
關(guān)于中文或者亂碼問題
Excel::load("filename.csv", function($reader) { }, "UTF-8");
或者在配置文件 excel.php(在安裝這個模塊的文檔有介紹怎么生成這個文件)
/* |-------------------------------------------------------------------------- | Sheet heading conversion |-------------------------------------------------------------------------- | | Convert headings to ASCII | Note: only applies to "heading" settings "true" && "slugged" | */ "to_ascii" => false, //主要修復(fù)一些亂碼 /* |-------------------------------------------------------------------------- | Import encoding |-------------------------------------------------------------------------- */ "encoding" => array( "input" => "UTF-8", //中文識別 "output" => "UTF-8" ),
導(dǎo)入的時候只讀取第一個sheets
$reader = Excel::load($file); $postDataFilter = []; $excelArray = $reader->first()->toArray();
多個表的話
Excel::batch("app/storage/uploads", function($sheets, $file) { $sheets->each(function($sheet) {//這里的$sheet變量就是sheet對象了,excel里的每一個sheet }); });關(guān)于導(dǎo)出
需要先關(guān)注一下導(dǎo)出的時候maatwebsite/excel是使用什么數(shù)據(jù)的
$result2 = array( //這個代表sheet本身 array("data1", "data2"), //這里代表一行 row,里面的數(shù)據(jù)就是橫向分布的每一個row的cell array("data3", "data4") //這里是第二行row );
這里需要注意的是多個sheet的話,不能直接在數(shù)組里面寫,要創(chuàng)建多個 $excel->sheet
上面是關(guān)于導(dǎo)出數(shù)組的構(gòu)成結(jié)構(gòu),下面是關(guān)于導(dǎo)出的函數(shù)需要注意的地方,至于如何完整使用,官方文檔說得還算是很清晰的
public function excelExport(){ //這里需要使用use來傳遞變量給內(nèi)部閉包,這里假設(shè)$result2是一個要轉(zhuǎn)換成excel的數(shù)組數(shù)據(jù) Excel::create("testexcel", function ($excel) use ($result2, $apiHost) { $excel->sheet("Sheetname", function ($sheet) use ($result2, $apiHost){ // Sheet manipulation //需要注意的地方1 $sheet->fromArray($result2, null, "A1", false, false); //需要注意的地方2 foreach ($result2 as $index=>$item) { if($index == 0 ){ //排除標題row continue; } //J2:J代表excel的讀取多個cell的寫法,寫過excel編程的不陌生 $sheet->getHyperlink("J2:J" . (count($result2) + 1))->setUrl($item["url"]); } }); })->export("xlsx"); }
地方1:
這里是將數(shù)組轉(zhuǎn)變?yōu)閟heet的命令,`->fromArray($source, $nullValue, $startCell, $strictNullComparison, $headingGeneration)` 這里需要關(guān)注最后一個參數(shù):`$headingGeneration`,默認是打開的,默認會將數(shù)組的keys導(dǎo)出,并且在第一行開始,但是一般我們第一行是用做標題的,所以需要關(guān)閉,這是例子寫法:
$sheet->fromArray($data, null, "A1", false, false);
那么我們做標題時候還需要手動寫入一個標題的row,例如這里是以$result2為例
$tmpHeader = [ "id", "名稱", "標簽", //...... ]; $result2[] = $tmpHeader;//將導(dǎo)出數(shù)組的第一個元素作為標題,不過需要注意,在構(gòu)建這個導(dǎo)出數(shù)組的時候,真正的數(shù)據(jù)要從索引1開始,因為0已經(jīng)是標題了
地方2:
這里是將一個cell設(shè)置為可點擊的網(wǎng)頁鏈接的 這是標準例子
$sheet->getCell("E26") //獲得cell ->getHyperlink() //獲取Hyperlink對象 ->setUrl("http://examle.com/uploads/cv/" . $cellValue) //設(shè)置url ->setTooltip("Click here to access file"); //這里可以不管,只是提示信息
這里是phpexcel的方法,其實laravel-excel是封裝在phpexcel上面的,所以大概的方法都差不多
//對比參考一下 //這是設(shè)置url跳轉(zhuǎn)的 $objPHPExcel->getActiveSheet()->setCellValue("E26", "www.phpexcel.net"); $objPHPExcel->getActiveSheet()->getCell("E26")->getHyperlink()->setUrl("http://www.phpexcel.net"); //這是設(shè)置在sheet內(nèi)部跳轉(zhuǎn)的 $objPHPExcel->getActiveSheet()->setCellValue("E26", "www.phpexcel.net"); $objPHPExcel->getActiveSheet()->getCell("E26")->getHyperlink()->setUrl("sheet://"Sheetname"!A1");
那么這里個例子里面是設(shè)置單例的,如果我們要設(shè)置整個數(shù)組的某一列的都變成可點擊的話,就需要用循環(huán)遍歷數(shù)組然后,循環(huán)seturl了
參考:
官網(wǎng)
https://github.com/Maatwebsite/Laravel-Excel/issues/926
Change a cell into a clickable URL
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22494.html
摘要:版微信第三方登陸包括微信微博等等,查看支持列表擴展好用的圖片處理,也方便使用百度版百度版支付集合,包含支付寶等支付寶在的封裝各國語言包,包含簡體中文生成二維碼工具,親測好用未完大家可以向我推薦,直接在本文下留言即可。 Laravel不權(quán)威導(dǎo)航 Hi 這里是Roy整理的Laravel相關(guān)索引,希望能幫到大家showImg(http://static.segmentfault.com/bu...
摘要:有時候需要給運營定時發(fā)送表格數(shù)據(jù),方式是定時跑程序?qū)?shù)據(jù)生成一個然后郵件發(fā)送到運營郵箱,這里用來處理安裝下載用戶用戶昵稱公司名稱銷售功能版本次數(shù)最高消耗剩余時間使用百度老王從數(shù)據(jù)庫讀取的結(jié)果發(fā)送郵件郵件配置參考模板文件附件內(nèi)容發(fā)送時 有時候需要給運營定時發(fā)送表格數(shù)據(jù),方式是定時跑程序?qū)?shù)據(jù)生成一個 excel 然后郵件發(fā)送到運營郵箱,這里用 laravel 來處理. 安裝 maatwe...
摘要:查找保存下載用搭建自己的緩存?zhèn)}庫權(quán)限管理的好選擇基于封裝的后臺管理系統(tǒng),支持手機和端訪問支付寶風格的驗證器后臺系統(tǒng)微信接口的部署腳本開發(fā)的博客系統(tǒng)百度推送自動記錄用戶行為擴展一個項目管理系統(tǒng)根據(jù)生成對應(yīng)導(dǎo)航的狀態(tài) 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū)說明是一款強大的文件處理擴展包能夠快速完成文件的的導(dǎo)出解析等功能本項目由團隊成員整理發(fā)布首發(fā)地為社區(qū)文章的項目截圖運行代碼請見請參照此文檔運行文章概覽安裝基礎(chǔ)用法更多功能接下來是詳細解說安裝使用安裝該擴展包安裝完成后, 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū) 說明 maatwebsite/excel 是一款強大的 Excel 文件處理擴展包, 能夠快速完成 Excel 文...
摘要:考慮到環(huán)境導(dǎo)致的行為差異太大,應(yīng)該避免在塊級作用域內(nèi)聲明函數(shù)。函數(shù)聲明語句函數(shù)表達式循環(huán)循環(huán)還有一個特別之處,就是循環(huán)語句部分是一個父作用域,而循環(huán)體內(nèi)部是一個單獨的子作用域。聲明一個只讀的常量。 es6學(xué)習筆記-let,const和塊級作用域_v1.0 塊級作用域 javascript 原來是沒有塊級作用域的,只有全局作用域和函數(shù)作用域 例子1 因為沒有塊級作用域,所以每次的i都是一...
閱讀 3344·2021-11-22 14:44
閱讀 2553·2019-08-30 14:10
閱讀 2615·2019-08-30 13:12
閱讀 1227·2019-08-29 18:36
閱讀 1356·2019-08-29 16:16
閱讀 3341·2019-08-26 10:33
閱讀 1775·2019-08-23 18:16
閱讀 391·2019-08-23 18:12