Help us understand the problem. What is going on with this article?

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

sakura_internet
さくらレンタルサーバ、さくらのVPS、 さくらのクラウド、さくらの専用サーバなどのインターネットサービス・ITプラットフォームを提供しています。
https://www.sakura.ad.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away