先日文書の構造化(Markdown)で多様なファイル形式の文書ファイルを導き出す話を書きました(編集中)。同じようなことをしている人はいるものです。以前からPythonを使ってExcelファイルを作成することはできたのですが、ある程度まとまったパッケージとしてmaelというものがPythonパッケージとして公開されています(*1。
今朝の自宅環境を計測しているデータ(CSVファイル)をMarkdown形式に変換してExcelファイルを作成してみました。手元にExcelがなくても作れます。元データは次の通りです。
[環境.csv]
日付,気温,湿度,気圧,海面更正気圧,不快指数
2025-04-08 04:10:01 ,3.29 , 99.83,1013.12,1021.16,37.95
2025-04-08 04:20:01 ,3.26 , 99.27,1013.26,1021.30,37.95
2025-04-08 04:30:02 ,3.12 , 99.26,1013.16,1021.20,37.69
2025-04-08 04:40:02 ,3.07 ,100.00,1013.24,1021.28,37.52
2025-04-08 04:50:01 ,3.06 ,100.00,1013.11,1021.16,37.50
2025-04-08 05:00:02 ,2.98 ,100.00,1013.10,1021.14,37.37
2025-04-08 05:10:02 ,3.00 ,100.00,1013.24,1021.29,37.40
2025-04-08 05:20:01 ,3.01 ,100.00,1013.19,1021.24,37.41
2025-04-08 05:30:01 ,3.03 ,100.00,1013.12,1021.16,37.45
2025-04-08 05:40:02 ,2.99 ,100.00,1013.21,1021.26,37.37
次の2つのファイルはmaelにかけるMarkdownファイルです(環境データ.md, 2.md(ほぼ同じ内容))。
[環境データ.md]
# 環境データ
##Summary
## List
### 日付
2025-04-08 04:10:01
### 気温
3.29
### 湿度
99.83
### 気圧
1013.12
### 海面更正気圧
1021.16
### 不快指数
37.95
### 日付
2025-04-08 04:20:01
### 気温
3.26
### 湿度
99.27
### 気圧
1013.26
### 海面更正気圧
1021.30
### 不快指数
37.95
### 日付
2025-04-08 04:30:02
### 気温
3.12
### 湿度
99.26
### 気圧
1013.16
### 海面更正気圧
1021.20
### 不快指数
37.69
### 日付
2025-04-08 04:40:02
### 気温
3.07
### 湿度
100.00
### 気圧
1013.24
### 海面更正気圧
1021.28
### 不快指数
37.52
### 日付
2025-04-08 04:50:01
### 気温
3.06
・・・
[2.md]
# 環境データ
##Summary
これは2.mdからexcel形式に変換されたものです
## List
りすと
### 日付
2025-04-08 04:10:01
### 気温
### 湿度
99.83
### 気圧
1013.12
### 海面更正気圧
1021.16
### 不快指数
37.95
### 日付
2025-04-08 04:20:01
### 気温
3.26
### 湿度
99.27
### 気圧
1013.26
### 海面更正気圧
1021.30
### 不快指数
37.95
### 日付
2025-04-08 04:30:02
### 気温
3.12
### 湿度
99.26
・・・
maelがExcelに変換するときに使う設定ファイルです。ここで新規項目も追加できます。
[./config/columns.yml]
# This is a sample file for column conditions.
# Here is global configuration for all columns
global:
duplicate_previous_for_blank: true
# These columns are prepended to the table.
prepend:
No.:
# increment column is aligned to the right.
type: increment
width: 5
# Here is the column conditions, which are not in prepended or appended columns .
# Columns in the table is read from the markdown files.
# So you have to specify only the columns you want to configure.
#column_conditions:
# Categories:
# type: list
# Description:
# width: 50
# Expected:
# width: 50
column_conditions:
# 日付:
# type: list
日付:
width: 20
気温:
width: 10
湿度:
width: 10
気圧:
width: 10
海面更正気圧:
width: 10
不快指数:
width: 10
# These columns are appended to the table.
append:
結果: null
更新日付: null
コメント:
width: 50
文字列:
type: string
value: ""
# For column configuration, these attributes are available
# width: number
# type: list or string
# value: increment
次にできあがったExcelファイルを添付します。
次に、2.mdファイルをPandocにかけてWord文書を作成したものを添付します。まぁ、こんなこともできるんだよという例です。
*1) このサイトにもPandocの話が出てきます。ちなみに、以前の記事に結城浩氏のSimpleWEBというCプログラムの話を記しました。あのときは出力としてTeXのことしか書きませんでしたが、このSimpleWEBではTeX,RTF,RSS,HTMLの各ファイルを出力できたように記憶しています。Cマガジンに連載の一部として掲載されたのが1990年代中ほどだったか、Pandocへと続く流れですね。
Pandocを検索していたら次のような記事に出会いました。まぁ、AIというとなんか新しく感じるのかもしれませんが、別に最近始まったものでもなく。。。ここに書いていることはそれこそ30年前にはボク自身やっていたことで💦でも、こういった流れになるのは自然なことだと思います。
note AIを使うこんなご時世だからこそ、Pandocが便利だった! 18 オカキ オカキ 2024年9月18日 19:21/note.com/kakitanerakusei/
コメントを残す