标签: exceljs

使用node.js修改现有Excel文件

有没有办法修改node.js中的现有excel文件?我查看了exceljs但它没有提供任何只修改现有数据的功能.好像它会写入新的流.

或者我错过了exceljs的一些东西?

提前致谢.

node.js exceljs

16
推荐指数
2
解决办法
2万
查看次数

节点exceljs读取文件

所以根据官方文档,我应该能够使用以下方法阅读excel文档:

    // read from a file 
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(filename)
    .then(function() {
        // use workbook 
    });

// pipe from stream 
var workbook = new Excel.Workbook();
stream.pipe(workbook.xlsx.createInputStream());
Run Code Online (Sandbox Code Playgroud)

我有以下文件:

在此输入图像描述

我需要做的就是将每一行加载到一个对象中:

var excelObject = {competence1: '', competence2: ''}
Run Code Online (Sandbox Code Playgroud)

然后将其保存到数组中.

但是文档并没有给我更多关于我如何从这个文件中读取的内容.它使用一个被调用的变量stream但是这个变量没有在任何地方解释

有谁知道插件并知道我如何实现我的目标?

node.js exceljs

12
推荐指数
3
解决办法
2万
查看次数

创建excel文件并用ExcelJS写入

我写了一个脚本,用 ExcelJS 创建一个新的 excel 文件。添加 3 个标题并插入 2 行。然后将该文件保存到磁盘。

在下一步中,它应该读取先前保存的文件,添加 1 行并以新名称再次保存。我找不到我尝试添加第三行的第二部分从未发生的原因。两个文件看起来相同,控制台中没有错误。

const Excel = require('exceljs');

async function exTest(){
  const workbook = new Excel.Workbook();
  const worksheet = workbook.addWorksheet("My Sheet");

worksheet.columns = [
  {header: 'Id', key: 'id', width: 10},
  {header: 'Name', key: 'name', width: 32}, 
  {header: 'D.O.B.', key: 'dob', width: 15,}
];

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)});

// save under export.xlsx
await workbook.xlsx.writeFile('export.xlsx');

// load a …
Run Code Online (Sandbox Code Playgroud)

javascript excel node.js async.js exceljs

9
推荐指数
2
解决办法
2万
查看次数

使用excel.js模块+节点在列标题之前添加行

我正在尝试使用node.js中的excel.js模块创建xslx文件.我能够创建列并添加其值.但是,我需要在列标题之前插入一些行,在那里我可以有一些描述.我怎样才能做到这一点?

我需要这样的东西

任何帮助将不胜感激

我试过的代码是

     var worksheet = workbook.getWorksheet(1);
    worksheet.mergeCells('A1:B1');
    var row = worksheet.getRow(1);
    row.getCell(1).value =' Hello, World!'; 
   // ... merged cells are linked 
    worksheet.getCell('A1').value = 'PI';
    worksheet.columns = [
        {header: 'Id', key: 'id', width: 10},
        {header: 'Name', key: 'name', width: 32},
        {header: 'complexity', key: 'complexity', width: 10},
        {header: 'hours', key: 'hours', width: 10},
        {header: 'cost', key: 'cost', width: 10}
    ];
     worksheet.addRow({name:'m', complexity: 'd', hours:5, cost: 7});
Run Code Online (Sandbox Code Playgroud)

javascript excel node.js exceljs

8
推荐指数
1
解决办法
5304
查看次数

如何使用exceljs在node.js中下载创建的excel文件

我正在使用exceljs模块来创建excel文件.问题是它既没有被创建也没有被保存在路径中.

var excel = require('exceljs');
var options = {
    filename: './streamed-workbook.xlsx',
    useStyles: true,
    useSharedStrings: true
};

var workbook = new Excel.stream.xlsx.WorkbookWriter(options);
var sheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
    { header: 'Id', key: 'id', width: 10 },
    { header: 'Name', key: 'name', width: 32 },
    { header: 'D.O.B.', key: 'DOB', width: 10 }
];

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.commit();

workbook.commit().then(function(){
    console.log('xls file is written.');
});
Run Code Online (Sandbox Code Playgroud)

但是当我运行代码时没有任何反应.没有创建excel.我在这里错过了什么?

***********************编辑**************************对我的代码进行了以下更改,但仍然无法正常工作.

        var …
Run Code Online (Sandbox Code Playgroud)

node.js express exceljs

8
推荐指数
4
解决办法
2万
查看次数

UnhandledPromiseRejectionWarning:错误:无效地址:Aundefined.怎么处理?

我循环Sheet 1一个Excel文件,其中包含3列,每行包含100行数据(字符串),并将一行中的每个单元格与行中的组合进行比较Sheet 2.

检查应该Sheet 1逐行开始,查看行中每个单元格的值是否与行中的任何位置匹配Sheet 2.如果检查失败,则应停止对该行的进一步检查,并开始检查下一行.Sheet 1无法匹配的单元格应标记为红色.

我下面的代码接近我需要的代码,但是如果Sheet 1(Eg Row 1: B2 and B3)中有2个或更多个单元格与任何行中的任何内容都不匹配,则会抛出错误Sheet 2.

错误:

(node:9040) UnhandledPromiseRejectionWarning: Error: Invalid Address: Aundefined
    at Object.validateAddress (C:\node_modules\exceljs\dist\es5\utils\col-cache.js:86:13)
    at new module.exports (C:\node_modules\exceljs\dist\es5\doc\cell.js:29:12)
    at module.exports.getCellEx (C:\node_modules\exceljs\dist\es5\doc\row.js:55:14)
    at module.exports.getCell (C:\node_modules\exceljs\dist\es5\doc\row.js:72:41)
    at C:\so.js:56:61
    at C:\node_modules\exceljs\dist\es5\doc\worksheet.js:370:11
    at Array.forEach (<anonymous>)
    at module.exports.eachRow (C:\node_modules\exceljs\dist\es5\doc\worksheet.js:368:18)
    at C:\so.js:16:19
    at <anonymous>
(node:9040) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function …
Run Code Online (Sandbox Code Playgroud)

javascript excel exceljs

8
推荐指数
1
解决办法
601
查看次数

在 exceljs 上提交错误

我尝试创建 Excel,但出现提交错误。我的代码有什么问题。如果我删除sheet.commit()并且workbook.commit()程序工作正常。

\n\n
const Excel = require(\'exceljs\');\nconst fs = require(\'fs\');\n\nconst workbook = new Excel.Workbook();\nconst sheet = workbook.addWorksheet("MySheet");\nconst writeToExcel = fs.createWriteStream("./test/testfile.xlsx");\n\nsheet.columns = [\n    { header: \'Id\', key: \'id\', width: 10 },\n    { header: \'Name\', key: \'name\', width: 40 },\n    { header: \'DOB\', key: \'dob\', width: 10, outlineLevel: 1}\n];\n\n\nlet names = [\'Windows\', \'Mac Os\', \'Ubuntu\', \'B OS\'];\nlet i = 2;\n\nnames.forEach( (singleName) => {\n    let row = sheet.getRow(i);\n    row.values = {\n        id: i-1,\n        name: singleName,\n        dob: new Date()\n    };\n …
Run Code Online (Sandbox Code Playgroud)

javascript node.js exceljs

7
推荐指数
1
解决办法
7301
查看次数

如何使用exceljs按名称获取单元格?

现在,我必须像这样进行硬编码

var cell = worksheet.getCell('A1');
Run Code Online (Sandbox Code Playgroud)

但我想按名称定义我的单元格data,并通过以下方式访问单元格:

var cell = worksheet.getCell('data');
Run Code Online (Sandbox Code Playgroud)

一只忙碌的猫

我怎样才能用 exceljs 做到这一点? 非常感谢!

注意:解决我的问题的唯一解决方案似乎是添加列/行标题并定义键,但我不想在我的代码中这样做:

worksheet.columns = [
  { header: 'Id', key: 'id', width: 10 }
];
Run Code Online (Sandbox Code Playgroud)

exceljs

7
推荐指数
2
解决办法
2万
查看次数

ExcelJS 节点:页面中的水平居中和垂直居中不起作用

请帮助我。

我的流程:

使用文件 Tempate -> Code (Exceljs) -> 输出新文件

模板文件:

在此处输入图片说明 页面中心:

  • 水平:检查
  • 垂直:检查

源代码:

worksheet.pageSetup.horizontalCentered = true 
worksheet.pageSetup.verticalCentered = true
Run Code Online (Sandbox Code Playgroud)

但是文件输出:

  • 水平:取消选中
  • 垂直:取消选中

javascript node.js exceljs

7
推荐指数
1
解决办法
2135
查看次数

如何使用 ExcelJs 将图像插入单元格

我正在尝试将图像添加到特定单元格,有什么方法可以调整图像大小或单元格大小,以便它适合单元格。?

    result.map(order => {
      const worksheet = workbook.addWorksheet(order.branch_code);

      worksheet.columns = [
        { header: 'Id', key: 'id', width: 10 },
        { header: 'Product Code', key: 'pcode', width: 20 },
        { header: 'Image', key: 'image', width: 50 },
      ];

      order.products.map(product => {
        const imageId = workbook.addImage({
          filename: `${PRODUCT_IMAGE_PATH}/${product.image}`,
          extension: 'jpeg',
        });

        worksheet.addRow({ id: product.products.id, pcode: product.products.product_code });
        worksheet.addImage(imageId, `C${position}:C${position}`);
        position++;
      });
    });

    await workbook.xlsx.writeFile('export.xlsx');

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但看起来像这样,我该如何解决这个问题?

预期操作:

在此输入图像描述

node.js exceljs nestjs

7
推荐指数
0
解决办法
1万
查看次数

标签 统计

exceljs ×10

node.js ×8

javascript ×5

excel ×3

async.js ×1

express ×1

nestjs ×1