如何使用 Nodejs 创建 Excel 文件?

新手上路,请多包涵

我是一个 nodejs 程序员。现在我有一个要以 Excel 文件格式保存的数据表。我该怎么做呢?

我找到了一些 Node 库。但其中大多数是 Excel 解析器而不是 Excel 编写器。我使用的是 Linux 服务器。因此需要可以在 Linux 上运行的东西。如果您知道任何有用的库,请告诉我。

或者有没有办法可以将 CSV 文件转换为 xls 文件(以编程方式)?

原文由 geeky_monster 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 929
2 个回答

excel4node根据官方规范构建 的维护的原生 Excel 文件创建器。它与另一个答案中提到的 msexcel-builder 类似,但维护得更好。

 // Require library
var excel = require('excel4node');

// Create a new instance of a Workbook class
var workbook = new excel.Workbook();

// Add Worksheets to the workbook
var worksheet = workbook.addWorksheet('Sheet 1');
var worksheet2 = workbook.addWorksheet('Sheet 2');

// Create a reusable style
var style = workbook.createStyle({
  font: {
    color: '#FF0800',
    size: 12
  },
  numberFormat: '$#,##0.00; ($#,##0.00); -'
});

// Set value of cell A1 to 100 as a number type styled with paramaters of style
worksheet.cell(1,1).number(100).style(style);

// Set value of cell B1 to 300 as a number type styled with paramaters of style
worksheet.cell(1,2).number(200).style(style);

// Set value of cell C1 to a formula styled with paramaters of style
worksheet.cell(1,3).formula('A1 + B1').style(style);

// Set value of cell A2 to 'string' styled with paramaters of style
worksheet.cell(2,1).string('string').style(style);

// Set value of cell A3 to true as a boolean type styled with paramaters of style but with an adjustment to the font size.
worksheet.cell(3,1).bool(true).style(style).style({font: {size: 14}});

workbook.write('Excel.xlsx');

原文由 mikemaccana 发布,翻译遵循 CC BY-SA 4.0 许可协议

我只是想到了一个简单的出路。这有效-

只需创建一个以 Tabs 作为分隔符的文件(类似于 CSV,但将逗号替换为 Tab )。使用扩展名 .XLS 保存它。该文件可以在 Excel 中打开。

一些代码来帮助 -

 var fs = require('fs');
var writeStream = fs.createWriteStream("file.xls");

var header="Sl No"+"\t"+" Age"+"\t"+"Name"+"\n";
var row1 = "0"+"\t"+" 21"+"\t"+"Rob"+"\n";
var row2 = "1"+"\t"+" 22"+"\t"+"bob"+"\n";

writeStream.write(header);
writeStream.write(row1);
writeStream.write(row2);

writeStream.close();

这将创建 XLS 文件格式的文件。如果您尝试使用 XLSX 而不是 XLS,它就不起作用。

原文由 geeky_monster 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题