Word、Excelドキュメントを自動生成する方法

公開日:2014/05/19

この記事は、書かれてから 9 年以上経過しており、内容が古い可能性があります。

業務システムでは、何かしらのドキュメントを自動作成することを
求められることが多いです。
ドキュメントといっても幅広く、
見積書、請求書、出荷伝票など(単票)から、
出荷一覧、請求一覧、顧客一覧、といった一覧情報(帳票)まで様々です。

たいていのお客様はWordやExcelでの閲覧・編集を望まれるのですが、
簡単そうに見えて、なかなかご要望どおりにできませんでした。
しかし最近、ようやくこのご要望に対応可能な方法を見つけることができました。

これまで

よくご存じの方が多いかもしれませんが、「CSVファイル」というファイルがあります。
Excelで開くことのできるファイルなのですが、弱点は
セルに形式(数値のカンマ区切りや右寄せ・左寄せ、0埋めなど)をつけることできない点にあります。

ただ、システムから作成するには容易なファイル形式のため、
長い間、システムから一覧情報を書き出す場合には、csvファイルが使われてきました。

セルに形式をつけられないだけでなく、
グラフも画像もつけられないので、
すべて文字データだけです。
お客様にはこの文字データを元にExcelで加工していただくなど
一手間かけていただく必要がありました。

Excel2003 XML、Word2003 XML

Excel2003, Word2003 では、xlsやdocファイルを
xmlファイルとして保存できるモードが用意されました。
xmlファイルは、htmlのいとこのようなもので、
csvファイルと同様、システムから作成するのが容易なファイル形式でした。

ですので、システムから Excel2003 XML の形式でファイルを作成し、
お客様には Excel で開いてもらうと、
セルに形式のついたファイルを開くことができるわけです。
金額には¥をつけたり、タイトル行には色をつけたり罫線を引いたり、
または印刷範囲の設定もすることができます。

ただし、csvファイルと同様、画像やグラフの埋め込みはできませんでした。
また、このxmlファイルをダブルクリックしても、環境によってはExcelやWordが
起動するわけではない、という問題もありました。

xlsx, docx

Excel2007, Word2007 になって xlsx, docx というファイルがサポートされました。
もうこれらの製品ができてから7~8年経過しているので
xlsxやdocxが、ExcelやWordのファイルであることを認知されている方も多いと思います。

xlsやdocのような以前の形式をプログラムで自動作成するのは
あまり推奨されないある種の逃げ道を使うことでなんとか実現できる、
という敷居の高いものでした。

一方、xlsx, docx は規格化されており
上述のcsvやxmlほどではないにせよ、
プログラムで作成するのにそれほど敷居の高いファイル形式ではありません。
ですので、その規格に則って作れば作れないことはない、というのが
つい最近までの私の認識でした。

「作れないことはない」が「規格通りに作るには手間がかかる」というのがネックで
どうしたらよいのか、ずっと考えていたのですが、
先日下記のオープンソースを見つけました。

OpenTBS
http://www.tinybutstrong.com/opentbs.php

詳細は割愛しますが、前提としてPHPで動作しているシステムでなら使うことができます。
ひな形のxlsx, docx を用意し、これをテンプレートとして利用することで
データを差し込みしてxlsx, docx を作るようなイメージです。

これまでのcsvやExcel 2003XML, Word 2003XMLと違い、
グラフや図表、マクロまでをあらかじめ含めたファイルを
システムで自動作成することができます。

このページの著者

イルカシステム(株)は、以下のような業務用ウェブシステムのご提案、受託開発、運用を行っております。

  1. 中小企業さま向けの社内向け営業支援、顧客管理、経営数値管理システム

    経営数値をリアルタイムで見える化し、目標達成度を常に把握することができ、顧客へのフォローもスムースになります

  2. 中小企業さま向けの受発注管理、請求入金管理、在庫管理

    御社特有の受発注業務、出荷処理をシステム化することで業容拡大への大きなお手伝いとなります

  3. 医療業界向けの業務改善システム

    ※医療業界向けに、臨床研究の無作為割付自動化のための自社サービス「 ムジンワリ 」をご提供しております。

  4. IoTシステムの開発

詳しくは ご提供サービス を参照してください。

お読みいただきありがとうございました

HTMLでグラフを表示して説得力を持たせる

iPadをより安全・便利に業務利用するために

こちらもおすすめ

システム化の相談はしてみたけれど...

中小企業のシステム導入に心強い補助金

訪問効果のある近所のお客様を探す顧客管理システムとは

お客様とのつながりを点数化し分析する

お客様との接点を記録することのメリット

顧客管理システムの目的は名簿作成ではない

顧客との接点を増やし売上をあげるシステム

お客様とのやりとりの記録のススメ

遠くのシステム会社が安い金額の提案をしてきたら?

システム会社に社内システムの保守を依頼するには