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

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

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

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

第一部分 下载

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程序设计有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容