LoginSignup
81
86

More than 5 years have passed since last update.

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

Posted at

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でした。

81
86
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
81
86