当前位置: 首页 > news >正文

河北商城网站建设价格自学网站开发设计

河北商城网站建设价格,自学网站开发设计,seo如何做网站建设,汇云网站建设实现#xff1a;使用Excel.js库创建excel文件#xff0c;然后再使用 file-saver库将 Excel 文件保存到用户的本地计算机。 1.安装#xff0c;可以使用npm#xff0c;yarn npm install exceljs npm install file-saver 2.封装生成excel的方法 // 封装exceljs const ExcelJ…实现使用Excel.js库创建excel文件然后再使用 file-saver库将 Excel 文件保存到用户的本地计算机。 1.安装可以使用npmyarn npm install exceljs npm install file-saver 2.封装生成excel的方法 // 封装exceljs const ExcelJS require(exceljs); const FileSaver require(file-saver);exportDataToExcel(config, fileName) {if (!config) return;const options {fileName: fileName || 导出excel文件【${Date.now()}】.xlsx,worksheets: []}if(!Array.isArray(config)) {config [config]}config.forEach((item) {// 深拷贝data【JSON.stringify有缺陷可自行换成_.cloneDeep】const data JSON.parse(JSON.stringify(item.data));const results data.map(obj {return item.fields.map(key {return obj[key]})})// 生成完整excel数据let excelData [];excelData excelData.concat(item.headers).concat(results);// 单元格合并处理【excel数据的第一行/列是从1开始】let excelMerges [];excelMerges item.merges.map(m {return [m.row 1, m.col 1, m.row m.rowspan, m.col m.colspan]})// 单元格配置处理 excel数据的第一行/列是从1开始】let excelAttrs [];excelAttrs item.attrs.map(attr {attr.rowStart 1;attr.rowEnd 1;attr.colStart 1;attr.colEnd 1;return attr})options.worksheets.push({data: excelData,merges: excelMerges,attrs: excelAttrs,views: item.views,columnsWidth: item.columnsWidth,protect: item.protect,sheetName: item.sheetName})})this.createExcel(options) },// 创建Excel文件方法 async createExcel(options) {if (!options.worksheets.length) return;// 创建工作簿const workbook new ExcelJS.Workbook();for (let i 0; i options.worksheets.length; i) {const sheetOption options.worksheets[i];// 创建工作表const sheet workbook.addWorksheet(sheetOption.sheetName || sheet (i 1));// 添加数据行sheet.addRows(sheetOption.data);// 配置视图sheet.views sheetOption.views;// 单元格合并处理【开始行开始列结束行结束列】if (sheetOption.merges){sheetOption.merges.forEach((item) {sheet.mergeCells(item) });}// 工作表保 if (sheetOption.protect) {const res await sheet.protect(sheetOption.protect.password, sheetOption.protect.options);}// 单元格样式处理if (sheetOption.attrs.length) {sheetOption.attrs.forEach((item) {const attr item.attr || {};// 获取开始行-结束行; 开始列-结束列const rowStart item.rowStart;const rowEnd item.rowEnd;const colStart item.colStart;const colEnd item.colEnd;if (rowStart) { // 设置行for (let r rowStart; r rowEnd; r) {// 获取当前行const row sheet.getRow(r);if (colStart) { // 列设置for (let c colStart; c colEnd; c) {// 获取当前单元格const cell row.getCell(c);Object.keys(attr).forEach((key) {// 给当前单元格设置定义的样式cell[key] attr[key];});}} else {// 未设置列整行设置【大纲级别】Object.keys(attr).forEach((key) {row[key] attr[key];});}}} else if (colStart) { // 未设置行只设置了列for (let c colStart; c colEnd; c) {// 获取当前列整列设置【大纲级别】const column sheet.getColumn(c);Object.keys(attr).forEach((key) {column[key] attr[key];});}} else {// 没有设置具体的行列则为整表设置Object.keys(attr).forEach((key) {sheet[key] attr[key];});}})}// 列宽设置if (sheetOption.columnsWidth) {for (let i 0; i sheet.columns.length; i) {sheet.columns[i].width sheetOption.columnsWidth[i]}}}// 生成excel文件workbook.xlsx.writeBuffer().then(buffer {// application/octet-stream 二进制数据FileSaver.saveAs(new Blob([buffer], { type: application/octet-stream }), options.fileName)})} 3.在项目中使用 exportExcel(){const header [[所在部门,隐患总数,已整改隐患数,整改中隐患数,整改率,一般隐患,,,,较大隐患,,,,重大隐患,,,],[,,,,,隐患数,已整改数,整改中数,整改率(%),隐患数,已整改数,整改中数,整改率(%),隐患数,已整改数,整改中数,整改率(%)]]const fields [name,count,count_yzg,count_zgz,zgl,count_common,count_common_yzg,count_common_zgz,ybyh_zgl,count_bigger,count_bigger_yzg,count_bigger_zgz,jdyh_zgl,count_biggest,count_biggest_yzg,count_biggest_zgz,zdyh_zgl]const merges [//导出表格的第一行第一列行合并2个单元格列就用自己的一个{row: 0, col: 0, rowspan: 2, colspan: 1},{row: 0, col: 1, rowspan: 2, colspan: 1},{row: 0, col: 2, rowspan: 2, colspan: 1},{row: 0, col: 3, rowspan: 2, colspan: 1},{row: 0, col: 4, rowspan: 2, colspan: 1},{row: 0, col: 5, rowspan: 1, colspan: 4},{row: 0, col: 9, rowspan: 1, colspan: 4},{row: 0, col: 13, rowspan: 1, colspan: 4},]const config this.exportConfig(header,fields,merges,this.tabledata[this.type]);//配置this.$utils.exportDataToExcel(config, 隐患治理情况统计表.xlsx);},//导出表格配置exportConfig(header [], fields [], merges [], tableData []){// console.log(header, fields, merges, tableData );// return//配置表头header1为一级表头header2为二级表头被合并的单元格为空写占位符// 如果导出前要处理数据需要深克隆一份表格数据然后进行处理const exportTableData JSON.parse(JSON.stringify(tableData));const config {data: exportTableData,//exportTableData为表格数据为空的话导出表格只显示表头fields: fields,headers: header,merges: merges,attrs: [],view: [],columnsWidth: [20, 20, 20, 20, 20,20, 20,20, 20, 20, 20, 20,20, 20,20,20],//每行列的宽// protect: {},sheetName: 个人信息};// 设置全表单元格边框居中布局config.attrs.push({rowStart: 0,rowEnd: config.data.length 1,//表格表头多几层就加几个colStart: 0,colEnd: config.fields.length - 1,attr: {alignment: { vertical: middle, horizontal: center },border: {top: { style: thin },left: { style: thin },bottom: { style: thin },right: { style: thin }}}});// 设置表头填充颜色字体加粗config.attrs.push({rowStart: 0,rowEnd: 1,//表格表头多几层就写几colStart: 0,colEnd: config.fields.length - 1,attr: {fill: {type: pattern,pattern: solid,fgColor: { argb: c5c8ce }},font: {bold: true}}});return config;} /**      * 导出数据到Excel 传参参数      * config.data 表格数据      * config.fields 字段列表      * config.headers excel表头列表[[]]可以是多级表头[[A1B1],[A2B2]]      * config.merges 需要合并的单元格需要考虑表头的行数[{row:1, col:1, rowspan: 1, colspan: 2}]      * config.attrs 单元格样式配置      * config.views 工作表视图配置      * columnsWidth 每个字段列对应的宽度      * config.protect 工作表保护【此配置会保护全表一般推荐只针对单元格进行保护配置】      * sheetName 工作表名称默认从sheet1开始      * fileName excel文件名称      */ 页面效果 导出excel效果
http://www.w-s-a.com/news/898915/

相关文章:

  • 交通局网站建设方案答辩ppt模板免费下载 素材
  • 个人摄影网站推介网手机版
  • 有哪些免费的视频网站网站开发和竞价
  • 学校网站如何做广州商城型网站建设
  • 微网站建设哪家便宜易优建站系统
  • 推荐做木工的视频网站毕业设计做的网站抄袭
  • 网站导航页面制作wordpress调用文章阅读量
  • app小程序网站开发品牌购物网站十大排名
  • 用wordpress做购物网站龙岩品牌设计
  • 网站开发是指wordpress系统在线升级
  • 网站建设运营的灵魂是什么意思页面跳转中
  • 家政服务网站源码重庆建网站企业有哪些
  • 怎样分析一个网站做的好坏重庆长寿网站设计公司哪家专业
  • 百度助手app下载苏州seo关键词优化排名
  • 17网站一起做 佛山诸城网站建设多少钱
  • 郑州网站建设培训学校泉州做网站设计公司
  • 西峡做网站深圳建筑工务署官网
  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司