Sphinxの表をExcelで管理する


なんだかんだいって、Excelで管理することになるのが世の習わしです。
Excelで管理されたデータを他で使うために、CSVにすることが多いと思います。
CSVにすると、Sphinxの表がつくれます。

ExcelをCSVに変換する

Excel CSV I/Oアドインというとても便利なアドインがあります。
http://fnya.cocolog-nifty.com/blog/2012/03/excel-csv-io-ex.html

自動化ではありませんが、どのExcelファイルでも使えるという利点があります。
使い方は、開いたExcelファイルで、Excel CSV I/Oのエクスポートボタンを押すだけです。

ダイアログが出てきますが、基本、そのままエクスポートです。

Sphinxの表をCSVで扱う

Sphinxでは表のデータをCSVファイルから取り込むことができます。
そこで、こんなふうに、Excelファイル, CSVファイル, .rstファイルを置いておけば、Excelファイルを変更して、Excel CSV I/OでCSVエクスポートするだけで、Sphinxの表を更新できます。

.rstファイルでCSVファイルを指定する方法は、例えばこんな感じです。

ワーディング
===========

ワーディング一覧
---------------

.. csv-table::
   :file: wording.csv
   :encoding: sjis
   :header-rows: 1

残念ながら、SphinxでMarkdownできるようになるcommonmarkでは、この仕組みが機能しないようなので、.mdファイルではできません。

おまけ1: CSVをいろいろ変換する

csvkitというツールが便利です。
https://github.com/wireservice/csvkit

例えば、CSVからJSONに変換したいときには次でOKです。

csvjson data.csv > data.json

おまけ2: 改行が含まれたExcelを扱う

CLEAN関数を使うと、不要な情報(というか変換の邪魔になる情報)を削除できます。
エクスポート用のシートを作成しておいて、そこの全部のセルを元のデータがあるシートを参照してCLEANをかませておけば、元のデータを変更するだけで、クリーンなCSVファイルが手に入ります。

=CLEAN(訪問分担!C3)