nodeJS生成xlsx以及设置样式
参考:
https://www.npmjs.com/package/xlsx-style
https://www.jianshu.com/p/877631e7e411
https://sheetjs.gitbooks.io/docs/#streaming-read
ps:以上第一个链接中的文档是错误的:
文字的水平对齐方式应该是:left center right 三个值才对
安装依赖:npm install xlsx-style node-xlsx xlsx,安装的依赖版本:
"dependencies": {
"node-xlsx": "^0.15.0",
"xlsx": "^0.14.4",
"xlsx-style": "^0.8.13"
}
把以上三个js文件拷贝到自定义目录,如node-xlsx-c
修改代码node-xlsx-c/index.js: xlsx修改为xlsx-style
编写生成xlsx的代码:
const fs = require("fs"); /**
* 生成xlsx
* @param p 生成文件路径
* @param cols 列名
* @param data 行,二维数组
*/
function genXlsx(p, cols, data) {
let nodeXlsx = require('./node-xlsx-c');
let d = [{
name: "Sheet1",
data: [
cols,
...data
]
}];
// !cols 指定列的宽度
fs.writeFileSync(p, nodeXlsx.build(d, {
'!cols': [{wch: 60}, {wch: 20}]
}), {'flag': 'w'});
}
// 指定单元格内容样式:四个方向的黑边框
let contentCellStyle = {
border: {
top: {
style: "medium", color: "#000"
},
bottom: {
style: "medium", color: "#000"
},
left: {
style: "medium", color: "#000"
},
right: {
style: "medium", color: "#000"
},
}
};
// 指定标题单元格样式:加粗居中
let headerStyle = {
font: {
bold: true
},
alignment: {
horizontal: "center"
}
} genXlsx("1.xlsx", [{
v: "表头1",
s: headerStyle
}, {
v: "表头2",
s: headerStyle
}], [[{
v: 123,
s: contentCellStyle
}, {
v: 456,
s: contentCellStyle
}]])
代码运行,在当前目录生成1.xlsx:
nodeJS生成xlsx以及设置样式的更多相关文章
- 在Asp.Net MVC中使用NPOI插件实现对Excel的操作(导入,导出,合并单元格,设置样式,输入公式)
前言 NPOI 是 POI 项目的.NET版本,它不使用 Office COM 组件,不需要安装 Microsoft Office,目前支持 Office 2003 和 2007 版本. 1.整个Ex ...
- 【使用 DOM】为DOM元素设置样式
1. 使用样式表 可以通过document.styleSheets属性访问文档中可用的CSS样式表,它会返回一组对象集合,这些对象代表了与文档管理的各个样式表. 每个样式表 都由一个CSSStyleS ...
- 【温故而知新-Javascript】为DOM元素设置样式
1. 使用样式表 可以通过document.styleSheets属性访问文档中可用的CSS样式表,它会返回一组对象集合,这些对象代表了与文档管理的各个样式表. 每个样式表 都由一个CSSStyleS ...
- c# Chart设置样式
一.chart属性熟悉 能够对C# chart控件属性熟悉起帮助的code, 现在分享给大家,Chart Operate Demo Code Download,如有帮助,别忘点个赞. Chart ...
- 如何给DropDownList控件设置样式(ASP.NET MVC)
前话: 应学校领导要求,要给后台管理系统添加一个搜索功能,提供可选择选项.我选择使用DropDownList去实现,熟悉.net控件的都知道,DropDownList的样子非常丑,不论是边框长宽还是里 ...
- django-xhtml2pdf的使用(加入图片,指定字体,设置样式)
新博客地址:http://muker.net/django-xhtml2pdf.html 这里仅仅讨论直接利用html生成pdf这种最常见也最简单的情况. 1.要利用html生成带中文的pdf要指定中 ...
- 微信小程序wxss设置样式
微信小程序wxss设置样式 对于以前搞客户端开发的来说,有着客户端的逻辑,就是不知道怎么设置样式,把对应的控件显示出来 一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视 ...
- word-wrap&&word-break,奇偶行、列设置样式
1.word-wrap和word-break区分. 来源场景:机械租赁mvc驾驶员信息查看: 当备注的文字多的时候,第一列的值成这模样: 解决方案:设置table 的td可自动换行.首先table设置 ...
- 注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式
注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式 这个坑,必须要注意呀, 比如在用ListView的时候,如果在List_ ...
随机推荐
- springmvc <mvc:resource /> 标签使用
<!-- 配置静态资源 --><mvc:resources location="/static/" mapping="/static/**"/ ...
- spring03
学习了spring的数据源的使用以及spring的作用域引入外部属性文件 对应的bean的xml文件和properties文件如下 <?xml version="1.0" e ...
- Java第三十四天,IO操作(续集),非基本对象的读写——序列化流
一.序列化与反序列化 以前在对文件的操作过程当中,读写的对象都是最基本的数据类型,即非引用数据类型.那么如果我们对饮用数据类型(即对象类型)数据进行读写时,应该如何做呢?这就用到了序列化与反序列化. ...
- 全方位认识HBase:一个值得拥有的NoSQL数据库(一)
前言:说起HBase这门技术,在认知上对于稍微接触或使用过它的人来讲,可能只是百千数据库中一个很普通的库,大概就像我对Redis的认知一样:缓存嘛!可对于HBase,我确实是带着某些感情在的.今日突然 ...
- AJ学IOS(42)UI之核心动画CAAnimationGroup以及其他
AJ分享,必须精品 效果: 代码: 很简单,不多说,就是把一堆动画放一起,看代码. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent * ...
- 【Canvas】(2)---绘制折线图
绘制折线图 之前在工作的时候,用过百度的ECharts绘制折线图,上手很简单,这里通过canvas绘制一个简单的折线图.这里将一整个绘制过程分为几个步骤: 1.绘制网格 2.绘制坐标系 3.绘制点 4 ...
- Go语言讲解深拷贝与浅拷贝
我们在开发中会经常的把一个变量复制给另一个变量,那么这个过程,可能是深浅拷贝,那么今天帮大家区分一下这两个拷贝的区别和具体的区别. 一.概念 1.深拷贝(Deep Copy): 拷贝的是数据本身,创造 ...
- 胜利大逃亡 BFS
Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0 ...
- flutter和react native如何选择
[关于性能]跨平台开发第一个考虑的就是性能问题RN的效率由于是将View编译成了原生View,所以效率上要比基于Cordova的HTML5高很多,但是它也有效率问题,RN的渲染机制是基于前端框架的考虑 ...
- python调用word2vec工具包安装和使用指南
python调用word2vec工具包安装和使用指南 word2vec python-toolkit installation and use tutorial 本文选译自英文版,代码注释均摘自本文, ...