Node.js
Excel

node.jsのofficegenで日本語入りのExcelファイルを出力するサンプル

More than 5 years have passed since last update.

node.jsで日本語入りのExcelを出力できるモジュールを探したときのメモ - Qiitaで調査対象の第一候補に上げたofficegenを試してみました。

結論から言うと


  • ファイル名

  • セル内のテキスト

  • シート名

のいずれも日本語OKでした。

しかも、特になんの工夫もいらなくて、officegen/examples/make_xlsx.js at v0.2.8 · Ziv-Barber/officegenを書き換えて、ファイル名、セルのテキスト、シート名に日本語を書いただけです。素晴らしい!


https

var fs = require('fs');

var officegen = require('officegen');

var xlsx = officegen ('xlsx');

xlsx.on ('finalize', function(written) {
console.log('Finish to create an Excel file.\nTotal bytes created: ' + written);
});

xlsx.on('error', function(err) {
console.log(err);
});

sheet = xlsx.makeNewSheet();
sheet.name = '日本語のシート名';

// The direct option - two-dimensional array:
sheet.data[0] = [];
sheet.data[0][0] = 1;
sheet.data[1] = [];
sheet.data[1][3] = 'あいう';
sheet.data[1][4] = 'えお';
sheet.data[1][5] = 'Text';
sheet.data[1][6] = 'Here';
sheet.data[2] = [];
sheet.data[2][5] = 'abc';
sheet.data[2][6] = 900;
sheet.data[6] = [];
sheet.data[6][2] = 1972;

// Using setCell:
sheet.setCell('E7', 340);
sheet.setCell('I1', -3);
sheet.setCell('I2', 31.12);
sheet.setCell('G102', 'こんにちは World!');

var out = fs.createWriteStream('日本語のファイル名(だくてん入り).xlsx');

out.on('error', function(err) {
console.log(err);
});

xlsx.generate(out);


テスト環境ですが、MS OfficeをインストールしていないMacBook Pro (Mavericks)でサンプルを実行してxlsxファイル生成後、別のMacでMicrosoft Excel for Mac 2011で開きました。

officegenで生成した日本語入りのExcelファイルを開いた所.png

「こんにちは World!」と設定したG102のセルはスクリーンショットでは見えていませんが、スクロールして確認したところ、こちらもOKでした。