nodeJS 利用xlsx导出插件导出excel文件 (可以设置excel单元格颜色/宽度)

var XLSX = require('xlsx');

var _exports = {};
module.exports = _exports;

_exports.exportXls = function(data) {
    var ws = {
    	s:{
    		"!row" : [{wpx: 67}]
    	}
    };
    ws['!cols']= [];
    for(var n = 0; n != data[0].length; ++n){
    	ws['!cols'].push({
         wpx: 170
      });
    }
    var range = {
        s : {
            c : 10000000,
            r : 10000000,
        },
        e : {
            c : 0,
            r : 0
        }
    };
    for (var R = 0; R != data.length; ++R) {
        for (var C = 0; C != data[R].length; ++C) {
            if (range.s.r > R)
                range.s.r = R;
            if (range.s.c > C)
                range.s.c = C;
            if (range.e.r < R)
                range.e.r = R;
            if (range.e.c < C)
                range.e.c = C;
            var cell = {
                v : data[R][C],
			    s:{
			    	fill: { fgColor: { rgb: "33000000"}},
			    	alignment: {horizontal: "center" ,vertical: "center"},
				 }
            };
            if (cell.v == null)
                continue;
            var cell_ref = XLSX.utils.encode_cell({
                c : C,
                r : R
            });

            if ( typeof cell.v === 'number')
                cell.t = 'n';
            else if ( typeof cell.v === 'boolean')
                cell.t = 'b';
            else if (cell.v instanceof Date) {
                cell.t = 'n';
                cell.z = XLSX.SSF._table[14];
                cell.v = datenum(cell.v);
            } else
                cell.t = 's';
            if(R){
            	delete cell.s.fill;
            }
            ws[cell_ref] = cell;
        }
    }
    data.fileName = "sample.xlsx";
    var workbook = new Workbook();
    var wsName = data.fileName.split(".xlsx")[0];
    workbook.SheetNames.push(wsName);
    workbook.Sheets[wsName] = ws;
    if (range.s.c < 10000000)
        ws['!ref'] = XLSX.utils.encode_range(range);
    var wopts = {
        bookType : 'xlsx',
        bookSST : false,
        type : 'binary'
    };
    var wbout = XLSX.write(workbook, wopts);
    XLSX.writeFile(workbook, data.fileName);
    return wbout;
};

function Workbook() {
    if (!(this instanceof Workbook))
        return new Workbook();
    this.SheetNames = [];
    this.Sheets = {};
}

时间: 2024-08-02 01:27:40

nodeJS 利用xlsx导出插件导出excel文件 (可以设置excel单元格颜色/宽度)的相关文章

如何用Apache POI操作Excel文件-----如何对一个单元格加注解?

有的时候,我们需要通过操作Apache POI,在生成Cell数据的同时,能对其生成的Cell,加上注解(comments),类似于下面的. 那么对于这种情况,我们的代码应该如何写呢? 借花献佛,我就用Apache POI官方提供的例子,然后加上一些注解,给大家看一下.本例子的测试代码是基于POI-3.12的. 执行完后,将会生成上图所示的Excel工作表单(sheet) [java] view plain copy import org.apache.poi.ss.usermodel.*; i

(3) 如何用Apache POI操作Excel文件-----如何对一个单元格加注解?

有的时候,我们需要通过操作Apache POI,在生成Cell数据的同时,能对其生成的Cell,加上注解(comments),类似于下面的. 那么对于这种情况,我们的代码应该如何写呢? 借花献佛,我就用Apache POI官方提供的例子,然后加上一些注解,给大家看一下.本例子的测试代码是基于POI-3.12的. 执行完后,将会生成上图所示的Excel工作表单(sheet) import org.apache.poi.ss.usermodel.*; import org.apache.poi.xs

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

c#操作Excel模板,替换命名单元格或关键字形成报表

http://blog.sina.com.cn/s/blog_45eaa01a0102vqma.html一 建立Excel 模板文件 template.xls 1.1 插入命名单元格的方法: 左上角名称框,显示当前单元格的行列号C2,加入命名后会显示其命名name 方法一: (1) 点击 单元格“姓名”之后的单元格(2) 菜单 插入--名称--定义(3) 在框中输入 name 确保底部的引用位置为 =Users!$C$2   按“添加”.“确定”按钮 即可 方法二:(1) 点击 单元格“姓名”之

怎样将Excel包含某字符的单元格填充颜色

在处理数据的时候,xmyanke想将Excel中包含某字符的单元格填充蓝色,比较容易看清,弄了好一阵子都没完成,最后试用条件格式处理了一下,终于实现了. 比如要将A1到A12区间包含数字1的单元格填充成蓝色,点击A1按shift键再点击A12选中A1:A12区间所有单元格,在菜单栏中选“格式”-“条件格式” 在弹出的条件格式对话框中选“单元格数值”“等于”“1”,点击“格式”按钮,弹出的单元格格式对话框中的“图案”选项,选择蓝色单元格底色,确定 这样设置以后,Excel包含某字符的单元格填充颜色

Java解析,导出Excel文件(.xlsx跟.xls两种格式)&amp;字体修改&amp;单元格合并

做项目时要用到Excel批量导入导出数据,网上搜了以下大部分都是.xls格式Excel文件的教程. 导入.xlsx跟.xls格式的过程差不了多少,就是导出的时候好像有点不同,而且网上也没教程,于是硬着头皮写了一个(并没有看官方Api文档( ̄▽ ̄)"). 首先是导入Jar包,在上传的项目里面已经将需要用到的Jar文件放在lib文件夹里面了,我们只需要在Eclipse里面设置一下: 这里表格信息用Teacher这个类封装: package JavaBean; public class Teacher

php 数据导出到excel 2种带有合并单元格的导出

具体业务层面 可能会有所不同.以下两种方式涉及的合并单元格地方有所不同,不过基本思路是一致的. 第一种是非插件版本.可能更容易理解点,基本思路就是 组装table 然后 读取 输出到excel上.缺点是要设置样式不太好设置. 第二种是利用插件  PHPExcel   有点是可以对输出格式做各种设置.缺点是初次接触这个插件的同学,并且对表格合并不熟悉的同学,可能要花点时间理解 另外注意excel对数字过长会处理成你不想要的数据,记得对该数据格式化成字符串 貌似就可以解决.以前遇到过 /** * *

POI 读取Excel文件,将Excel数据导入数据库

/** * 读取Excel单元格所显示的字符串(显示什么就返回什么) * 创建人:minlorry * 创建日期:2015-07-31 * 更新日期:2015-07-31 * 更新说明:生硬地处理了数值单元格的处理,日期单元格未作处理. * @param cell Excel单元格 * @return String 单元格显示的字符串 */ public static String getStringValue(Cell cell) { String stringValue = "";

(8) 如何用Apache POI操作Excel文件-----POI-3.10.1 的一个颜色黑白色颠倒的一个bug和解决方案

在用POI-3.10.1 的版本设置Excel单元格的字体的颜色或者单元格背景色的时候,对于XSSF方式,如果设置的颜色为黑色,则实际在Excel中渲染出来的却是白色:反之,如果设置的颜色为白色,则实际在Excel中渲染出来的却是黑色. 这个是POI-3.10中XSSF中一个bug. 重现的代码如下: import java.awt.Color; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; impo