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