ExcelJS纯前端插入数据和图片在表格中

您所在的位置:网站首页 在excel里怎么添加照片 ExcelJS纯前端插入数据和图片在表格中

ExcelJS纯前端插入数据和图片在表格中

2024-07-15 07:37:56| 来源: 网络整理| 查看: 265

ExcelJS简介

ExcelJS可以读取,操作并写入电子表格数据和样式到 XLSX 和 JSON 文件

安装(本文以在vue框架中使用为例)

npm install exceljs file-saver -S 导入

import Excel from "exceljs"; import * as FileSaver from "file-saver";//用于客户端读写数据

使用示例 HTML标签

导出

js代码 添加工作表

methods:{ async exportStatics() { const EXCEL_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"; // 创建工作簿 let workbook = new Excel.Workbook(); // 设置工作簿的属性 workbook.creator = "Me"; workbook.lastModifiedBy = "Her"; workbook.created = new Date(1985, 8, 30); workbook.modified = new Date(); workbook.lastPrinted = new Date(); // 工作簿视图,工作簿视图控制在查看工作簿时 Excel 将打开多少个单独的窗口 workbook.views = [ { x: 0, y: 0, width: 1000, height: 2000, firstSheet: 0, activeTab: 1, visibility: "visible", }, ]; // let worksheet = workbook.addWorksheet("sheet1"); const imgArr = [base64格式的图片1,base64格式的图片2] // 通过 base64 将图像添加到工作簿 imgArr .forEach((item,index) => { // 通过 base64 将图像添加到工作簿 const imageId1 = workbook.addImage({ base64: getFullCanvasDataURL(item), extension: "png",// 图片扩展名,支持“jpeg”,“png”,“gif” }); 在一定范围内添加图片 worksheet.addImage( imageId1, `${String.fromCharCode(65 + index * 6)}1:${String.fromCharCode( 70 + index * 6 )}16` ); }); const heard = { enterpriseName:'公司名称', applicationName: '应用名称', }; const listHearder = Object.keys(heard); // 按行的格式插入表头 worksheet.insertRow( 17,// 行的位置 listHearder.map((item) => heard[item]) ); //插入表格数据 const tableData = [{enterpriseName:"长亮科技",applicationName:"test"},{enterpriseName:"长亮科技1",applicationName:"test1"}]; tableData.forEach((item, index) => { worksheet.insertRow( index + 18, listHearder.map((ite) => item[ite]) ); }); //导出表格数据 workbook.xlsx.writeBuffer().then((data) => { const blob = new Blob([data], { type: EXCEL_TYPE }); console.log(blob.stream(), 6664744) FileSaver.saveAs(blob, "download.xlsx"); }); }, }

以表格方式添加工作表

const rows = [] tableData.forEach((item, index) => { rows.push(listHearder.map((ite) => item[ite])) }); worksheet.addTable({ name: 'MyTable', ref: 'A20', bold: true, headerRow: true, totalsRow: false, style: { theme: '', showRowStripes: false, }, columns: listHearder.map((item) => { return { name: heard[item]} }), rows }); // 给表格添加边框 const renderTabBorder = (index, ind, obj) => { worksheet.getCell(`${String.fromCharCode(65 + index)}${ind + 20}`).border = { ...obj, top: { style: 'thin' }, right: { style: 'thin' }, }; } const len = rows.length + 1 for (let ind = 0; ind if (index === 0 && ind !== rows.length) { renderTabBorder(index, ind, { left: { style: 'thin' }, }) } else if (ind === rows.length && index !== 0) { renderTabBorder(index, ind, { bottom: { style: 'thin' } }) } else { renderTabBorder(index, ind, { left: { style: 'thin' }, bottom: { style: 'thin' } }) } }) } workbook.xlsx.writeBuffer().then((data) => { const blob = new Blob([data], { type: EXCEL_TYPE }); console.log(blob.stream(), 6664744) FileSaver.saveAs(blob, "download.xlsx"); }); },

注意:将表格添加到工作表将通过放置表格的标题和行数据来修改工作表。 结果就是表格覆盖的工作表上的所有数据(包括标题和所有的)都将被覆盖。

表格属性

表属性 描述 是否需要 默认值 name 表格名称 Y displayName 表格的显示名称 N name ref 表格的左上方单元格 Y headerRow 在表格顶部显示标题 N true totalsRow 在表格底部显示总计 N false style 额外的样式属性 N {} columns 列定义 Y rows 数据行 Y 表格样式属性

列属性 描述 是否需要 默认值 name 列名,也用在标题中 Y filterButton 切换标题中的过滤器控件 N false totalsRowLabel 用于描述统计行的标签(第一列) N ‘Total’ totalsRowFunction 统计函数名称 N ‘none’ totalsRowFormula 自定义函数的可选公式 N 统计函数

下表列出了由列定义的 totalsRowFunction 属性的有效值。如果使用 ‘custom’ 以外的任何值,则无需包括关联的公式,因为该公式将被表格插入。

统计函数 描述 none 此列没有统计函数 average 计算列的平均值 countNums 统计数字条目数 count 条目数 max 此列中的最大值 min 此列中的最小值 stdDev 该列的标准偏差 var 此列的方差 sum 此列的条目总数 custom 自定义公式。 需要关联的 totalsRowFormula 值。 表格样式主题

有效的主题名称遵循以下模式:

“TableStyle[Shade][Number]” Shades(阴影),Number(数字)可以是以下之一:

Light, 1-21 Medium, 1-28 Dark, 1-11 对于无主题,请使用值 null。

注意:exceljs 尚不支持自定义表格主题。

修改表格

表格支持一组操作函数,这些操作函数允许添加或删除数据以及更改某些属性。由于这些操作中的许多操作可能会对工作表产生副作用,因此更改必须在完成后立即提交。

表中的所有索引值均基于零,因此第一行号和第一列号为 0。

添加或删除标题和统计

const table = worksheet.getTable('MyTable'); // 关闭标题行 table.headerRow = false; // 打开统计行 table.totalsRow = true; // 将表更改提交到工作表中 table.commit();

添加和删除行

const table = worksheet.getTable('MyTable'); // 删除第二行 table.removeRows(1, 2); // 在索引 2 处插入新行 table.addRow(["平安银行", "test", 'Mid'], 2); // 在表格底部追加新行 table.addRow(["广发银行", "test3", 'End']); // 将表更改提交到工作表中 table.commit();

添加和删除列

const table = worksheet.getTable('MyTable'); // 删除第二列 table.removeColumns(1, 1); // 在索引 1 处插入新列(包含数据) table.addColumn( {name: '公司名称'}, ['招商银行', '邮政储蓄'], 2 ); // 将表更改提交到工作表中 table.commit();

有效边框样式

thin dotted dashDot hair dashDotDot slantDashDot mediumDashed mediumDashDotDot mediumDashDot medium double thick



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭