使用exceljs匯出部門-職位聯動下拉框的excel
import { Workbook } from 'exceljs'; /////////////////////////////// const wb = new Workbook(); const ws = wb.addWorksheet('tb'); const dict2 = wb.addWorksheet('dict2'); const test = wb.addWorksheet('test'); const test_data = [{ post_name: '方案', department_name: '產品' }, { post_name: '設計', department_name: '產品' }, { post_name: 'js開發', department_name: '產品' }, { post_name: '部門主管', department_name: '產品' }]; const departments = Array.from(test_data.reduce((p, c) => { p.add(c.department_name); return p; }, new Set())); dict2.addRows(departments); ws.columns = [ { header: '員工編號', key: 'staff_no', width: 20 }, // A1 { header: '員工姓名', key: 'staff_name', width: 20 }, // B2 { header: '性別', key: 'sex', width: 20 }, // C3 { header: '部門名稱', key: 'department_name', width: 20 }, // D4 { header: '崗位名稱', key: 'post_name', width: 20 }, // E5 { header: '身份證號', key: 'id_no', width: 20 }, // 6 { header: '出生日期', key: 'birthday', width: 20 }, // 7 { header: '年齡', key: 'age', width: 20 }, // 8 { header: '聯絡電話', key: 'contact_number', width: 20 }, // 9 { header: '入職時間', key: 'staff_hiredate', width: 20 }, // 10 { header: '員工狀態', key: 'staff_state', width: 20 } // 11 ]; /////////////////////////// new Array(5000).fill(0).forEach((_, idx) => { const row = idx + 2; // 渲染部門下拉框 ws.getCell(row, 4).dataValidation = { type: 'list', formulae: [`=dict2!$C$2:$C${departments.length}`] }; // 使用indirect函式新增引用, 渲染崗位 ws.getCell(row, 5).dataValidation = { type: 'list', formulae: [`=INDIRECT(D${row})`] }; }); // 新增名稱管理器 const _data = test_data.reduce((p, c: any) => { if (!p.has(c.department_name)) { p.set(c.department_name, [c.post_name]); } else { const arr = p.get(c.department_name); arr.push(c.post_name); } return p; }, new Map<string, string[]>()); const department_names = Array.from(_data.keys()); const post_names = Array.from(_data.values()); test.addRows(post_names); test.eachRow(function (row, i) { const department_name = department_names[i - 1]; console.log(department_name, i); row.eachCell(function (cell, colNumber) { cell.addName(department_name); }); }); await wb.xlsx.writeFile('/home/feidao/Desktop/模板列表.xlsx'); return; // const buff = await wb.xlsx.writeBuffer(); // return { // buff, // content_type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // attachment: '模板列表.xlsx' // };
相關推薦
使用exceljs匯出部門-職位聯動下拉框的excel
import { Workbook } from 'exceljs'; /////////////////////////////// const wb = new Workbook(); const ws = wb.addWorksheet('tb'); const d
原生的三級聯動下拉框
for .org char endif cti ima nal height local 最近在工作中遇到了一個需要三級聯動的功能,之前也只用到過地區聯動的三級菜單,還是用的插件,這次就不沒那麽好了,沒辦法,自己寫咯,我下面的寫出來的是原生的;寫的不好,不要噴我 一共有三個
前端省市區(縣)三級聯動下拉框
呼叫省市區的思想要先確定下來,一般是有多處呼叫,所以將省市區三級聯動抽取為工具js! 靜態頁面例子: <html> <head> <script type="text/javascript" src="address.js"></script
兩級聯動下拉框的簡單實現
最近經常用到二級選單的情況,改變一個另一個跟著變化。自己寫了一個簡單的JSP頁面,大家給點意見,另外大家這種情況都是怎麼做的,當然Ajax除外![code]<%! public final String _JS_GET_METHOD_NAME="_do_get_seco
利用ajax實現二級聯動下拉框
下拉框二級聯動,用ajax來實現是已經非常成熟的技術了。但對於我這個java菜鳥來說,真的是費了九牛二虎之力,各種百度,各種測試。終於得以實現。程式碼相對於網上的容易理解些。現把程式碼和我在編寫的過程中遇到的問題貼出來,對自己也是一個總結,同時也希望能幫助到跟我一樣的菜鳥。
javascript年月日三級聯動下拉框
/* 在你的頁面需要這三條html程式碼 <select id="y" onchange="funy(this)"></select> <select id="m" onchange="fu
android:省市二級聯動下拉框
xml佈局檔案: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
基於Vue的三級聯動下拉框
展示 html部分 使用v-model設定和獲取select的值 使用v-for顯示option列表 使用:value設定option屬性 使用{{}}輸出內容 <div i
自己總結封裝了多級聯動下拉框js
/*支援多級下拉框 * data:查詢出來的所有資料,經過處理縮排的多級資料。子集用固定child, * pdata:選中的資料。字串用逗號隔開例:'4,57,557'如果沒有就空字串''; *
ASP.NET兩級聯動下拉框
介紹一個剛做的例子吧! 使用者在提出問題時需要選擇物件機構,而物件機構的分類在一個叫做category的表中儲存。下面介紹一下使用者從分類下拉框中選擇分類後出現機構下拉框。 前臺頁面中放置兩個下拉框: 分類:<asp:dropdownlist id="ddl
JSON+JS實現省市縣三級聯動下拉框
function Area(selector){ if (!Area.ALL_AREAS) { throw new Error('areas not init!'); } this.selector = selector; $(this.selecto
POI匯出帶級聯下拉框的excel
效果: 所需jar包: poi-3.8-20120326.jar demo: import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOExceptio
初學ajax,實現使用者名稱重複提示、二級/三級聯動下拉框
初學ajax,實現非同步操作! 以下為三級聯動下拉框部分程式碼 jsp頁面部分程式碼 <table> <tr> <th>下拉框:</th> &l
sharepoint2010實現聯動下拉框(不用程式碼)
近期由於實習需要,開始學習sharepoint. 之前對於sharepoint是完全不瞭解,連聽都沒聽過。不過從現在開始瞭解啦。 公司近期將原來用的sharepoint2007升級為2010的,很多功能是2007不能實現的。比如這個聯動下拉框的實現,在sharepoint2
Android實現三級聯動下拉框 下拉列表spinner
布局 idt ets county wid 分享圖片 n) 技術分享 parent 主要實現辦法:動態加載各級下拉值的適配器 在監聽本級下拉框,當本級下拉框的選中值改變時,隨之修改下級的適配器的綁定值 XML布局:
路由機構 -- 下拉框獲取當前所屬部門
當前 esp success post war pro -- dia init //下拉框獲取當前所屬部門 function initRespOrg(){ $.ajax({ type: "POST", url: "/tms/
Easyui多個下拉框聯動效果
code this .com cti 下拉框聯動 reload tex count 多個 好久沒寫前端了,以前在做多級聯動的時候,用的是easyui的tree結構,但是需要一次性全部加載,不是按需加載,性能不好,退而求其之,用多個下拉框做 eayui的combobox 有
下拉框的二級聯動
fff append 二級 前臺 數據庫表 option return 那種 後臺 需求描述:點擊服務類型下拉框,選擇後,後邊的服務類別會自動的匹配到與服務類型相對應的,臥槽,繞來繞去的,說不明白啦。舉個例子:服務類型A,B,C三個可選,當選擇A的時候,服務類別會自動填充上
ASP.NET MVC下拉框聯動
這個case主要是我在做專案的時候遇到一個需要根據input控制元件輸入的內容,動態填充dropdown list中的內容, 實現二者聯動的需求。在搜尋了一些資源後,這篇部落格解決了我的問題,所以記錄並轉載一下。 轉載自: https://www.jb51.net/article/88986.htm 資料
DJANGO實現下拉框的二級聯動
環境:PYTHON2.7+DJANGO1.9 有資料表如下,就是想在每次下拉框選擇dnsname欄位的時候,帶出對應的hostipaddr欄位 實現如下 models.py from __future__ import unicode_literals from django