欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Nodejs技巧之Exceljs表格操作用法示例

程序员文章站 2022-06-23 18:25:39
本文实例讲述了nodejs技巧之exceljs表格操作用法。分享给大家供大家参考,具体如下: 工作中我们可能会遇到制作表格的需求,那么针对nodejs如何制作一个汇总表格呢? 今天...

本文实例讲述了nodejs技巧之exceljs表格操作用法。分享给大家供大家参考,具体如下:

工作中我们可能会遇到制作表格的需求,那么针对nodejs如何制作一个汇总表格呢?

今天我们就在此介绍下 的基本使用,应该可以满足我们大部分的需求。

第一部分 下载

npm install exceljs

第二部分 基本的配置

var excel = require("exceljs");
var 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(2016, 9, 27);
// 视图大小, 打开excel时,整个框的位置,大小
workbook.views = [
  {
    x: 0,
    y: 0,
    width: 1000,
    height: 2000,
    firstsheet: 0,
    activetab: 1,
    visibility: "visible"
  }
];
// 标签创建
var worksheet = workbook.addworksheet("第一个标签");
 // 带颜色的
var worksheet2 = workbook.addworksheet("第二个标签", { properties: { tabcolor: { argb: "ffc0000" } } });
// 遍历标签
workbook.eachsheet((worksheet, sheetid) => {
  console.log("标签id:", sheetid)
})
// console.log(worksheet);
// 删除一个标签
workbook.removeworksheet(2)
var firstsheet = workbook.getworksheet(1);
console.log("标签信息-id", firstsheet.id);
console.log("获取总的:行/实际行 /列/实际列 个数: ", firstsheet.rowcount, firstsheet.actualcolumncount, firstsheet.columncount, firstsheet.actualcolumncount);
// 添加那个筛选箭头
worksheet.autofilter = 'a1:c1';
worksheet.getrow(5).font = { size: 14, bold: true };
worksheet.getcell("a2").value = "site";
worksheet.getcell("a2").font = {
  name: "arial black",
  color: { argb: "ff00ff00" },
  family: 2,
  size: 14,
  italic: true,
  bold: true
};
// save workbook to disk
workbook.xlsx.writefile("first.xlsx").then(function() {
  console.log("saved");
});

第三部分 行列的操作

看代码看注释

var excel = require("exceljs");
var workbook = new excel.workbook();
// 标签创建
var worksheet = workbook.addworksheet("第一个标签");
// 带颜色的
var worksheet2 = workbook.addworksheet("第二个标签", {
  properties: {
    tabcolor: {
      argb: "ffc0000"
    }
  }
});
// 设置列
worksheet.columns = [{
    header: 'rating period',
    key: 'id',
    width: 38
  },
  {
    header: 'name',
    key: 'name',
    width: 32,
  },
  {
    header: 'd.o.b.',
    key: 'dob',
    width: 10,
    style: {
      numfmt: 'dd/mm/yyyy'
    }
  }
];
/// 根据id添加值
worksheet.addrow({
  id: 1,
  name: 'john doe',
  dob: new date(1970, 1, 1)
});
worksheet.addrow({
  id: 2,
  name: 'jane doe',
  dob: new date(1965, 1, 7)
});
worksheet.getcell(1).value = "z";
// 直接赋值
worksheet.getcell('a6').value = "1989";
// 合并单元格
worksheet.mergecells('a4:a7');
// 合并四个格子
worksheet.mergecells('a10', 'b11');
// ===== 格式化显示,
// 数字 1.6 显示 '1 3/5'
worksheet.getcell('a1').value = 1.6;
worksheet.getcell('a1').numfmt = '# ?/?';
// 显示 1.60%
worksheet.getcell('b1').value = 0.016;
worksheet.getcell('b1').numfmt = '0.00%';
// ===== 字体显示
worksheet.getcell('a3').font = {
  // 字体名
  name: 'comic sans ms',
  // font family for fallback. an integer value. 
  family: 4,
  // 字体大小
  size: 16,
  // 下划线
  underline: true,
  // 加粗
  bold: true,
};
worksheet.getcell('a3').value = "测试字体"
// ==== 对齐方式
worksheet.getcell('a1').alignment = {
  vertical: 'top',
  horizontal: 'left'
};
worksheet.getcell('b1').alignment = {
  vertical: 'middle',
  horizontal: 'center'
};
worksheet.getcell('c1').alignment = {
  vertical: 'bottom',
  horizontal: 'right'
};
// ===== 边框
worksheet.getcell('a1').border = {
  top: {
    style: 'double',
    color: {
      argb: 'ff00ff00'
    }
  },
  left: {
    style: 'double'
  },
  bottom: {
    style: 'thin'
  },
  right: {
    style: 'thin'
  }
};
// ==== 填充颜色
worksheet.getcell('a1').fill = {
  // 模式
  type: 'pattern',
  // 填充
  pattern: 'solid',
  // fgcolor: {
  //   argb: 'ffff0000'
  // },
  // 背景色
  bgcolor: {
    argb: 'ff0000ff'
  }
};
// 图片相关操作直接看github就好
// 直接创建一个excel表
workbook.xlsx.writefile("second.xlsx").then(function () {
  console.log("saved");
});

希望本文所述对大家node.js程序设计有所帮助。