exceljs 使用记录
-
安装
npm install exceljs --save
-
引用
import * as ExcelJs from 'exceljs/dist/exceljs';
-
初始化工作表
const workbook = new ExcelJs.Workbook(); //创建工作簿 workbook.created = new Date(); //设置工作簿创建时间 workbook.modified = new Date(); //设置工作簿修改时间 workbook.lastPrinted = new Date(); workbook.properties.date1904 = true; // 设置日期系统 const worksheet = workbook.addWorksheet('sheet', { properties: { tabColor: { argb: 'FF00FF00' } } }); //添加工作表并初始化设置
-
获取指定列并设置列宽
worksheet.getColumn(“A”).width = 15 // 表示宽度为15个英文字符的宽度
-
获取指定行的指定单元格
const cell = worksheet.getRow(2).getCell(1) // 获取第二行的第一个单元格 cell.border = { // 给单元格添加边框 top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }; cell.value = { // 给单元格赋值并设定样式 'richText': [{ 'font': { 'bold': true, 'size': 16, 'color': { 'theme': 1 }, 'name': '黑体', 'family': 2, 'scheme': 'minor' }, 'text': "单元格中的值" }] }; cell.alignment = { vertical: 'middle', horizontal: 'center' }; // 内容居中
-
合并单元格
worksheet.mergeCells('K10', 'M12');// 按左上,右下合并 worksheet.mergeCells(10,11,12,13);// 按开始行,开始列,结束行,结束列合并(相当于 K10:M12)
-
下载表格
workbook.xlsx.writeBuffer().then(buffer => { // 保存设置; saveAs(new Blob([buffer], { type: 'application/octet-stream' }), "文件名.xlsx"); }); function saveAs(obj, fileName) { let excelTable = document.createElement('a'); excelTable.download = fileName || '下载'; excelTable.href = URL.createObjectURL(obj); excelTable.click(); setTimeout(function () { URL.revokeObjectURL(obj); }, 100); }
-
其它
function getExcelColName(n) { // 数字转excel列名称 如:1=》A, 27=>AA, 28=>AB var ordA = 'A'.charCodeAt(0); var ordZ = 'Z'.charCodeAt(0); var len = ordZ - ordA + 1; var s = ""; while (n >= 0) { s = String.fromCharCode(n % len + ordA) + s; n = Math.floor(n / len) - 1; } return s; } function isChinese(temp) { //中文字符判断 var re = /[^\u4E00-\u9FA5]/; if (re.test(temp)) return false; return true; } function rowToCol(data) { // 表格数据横竖转换 let colData = []; if (data && data.length > 0) { for (const key in data[0]) { colData.push([]); } for (const key in data) { for (const index in data[key]) { colData[index][key] = data[key][index]; } } } return colData; }