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