超ローテク、Googleスプレレッドシートの表をはてなブログに貼り付ける
(2021-12-28 初稿 - )
はじめに
筆者はスーパーカブ110に乗っていて、これまでの燃費を公開している。
上記のページを記述するときに使った方法が以下のとおり。
上のリンクの方法でもいいのだけど、ちょっと大げさで、給油のたびに元のGoogleスプレッドシートから貼り直さなくてはいけなくて面倒に感じてきた。今回も似たようなものだけど、単純なhtmlで変換するので多少の修正ははてなブログ内で可能。
そこで、超ローテクだがGoogleスプレッドシートからはてなブログの表に貼り付けるPythonのスクリプトを作ったのでアップする。
一応、ネットで調べたら、csvやpandasライブラリを読み込んで○○というのが多かったけど、こっちは超ローテクなので高級なライブラリは使っていない。^^;
方法の概要
超ローテクだけに、手作業や決まりごとは多い。滝汗)
以下に、その方法の概要を示す。
以下、具体的に記述する。
Googleスプレッドシートで表を作成し、CSVファイルとしてダウンロード
まずは、Googleスプレッドシートを作るのだけど、超ローテクだけに制限がある。
表はA列から始める必要がある。
表1のタイトル( Table Caption) 表1の項目(Table Header) 表1の中身 空白1行以上(表と表の区切り) 表2のタイトル 表2の項目(Table Header) 表2の中身
この形式で表を作れば、いくつでも表を作り、変換することができる。
すべての表が完成したら、Googleスプレッドシートのメニューの「ファイル」、「ダウンロード」、「カンマ区切り形式(.csv)」を選択してダウンロード。
Pythonスクリプトで変換
今回作成したスクリプトは以下のとおり。
超ローテクだけに、csvもpandasも読み込んでいない。^^;
#!/usr/bin/env python3 #coding: UTF-8 # cvs to hatena html # ver0.01 written H.Yamada 2021-12-28 # ver0.02 2021-12-29 mod table判定 # ver0.03 2021-12-29 Commandline Arguments csv filename import sys #CsvFile = '/home/hoge/Downloads/Cub110燃費 - 燃費.csv' Init_Style = """<style type="text/css"> .entry-content table{ display:table; />} table caption { caption-side: top; } </style> """ def prn_err(): print("csv-h_html.py csv_filename.csv") def begin_table(): print('<table border="1">') def end_table(): print('</tbody>') print('</table>') def prn_caption(caption): print('<caption>', caption, '</caption>', sep='') def prn_header(theader): theader = theader.split(',') print('<thead>') print('<tr>', end='') for item in theader: print('<td align="center">', item, '</td>', sep='', end='') print('</tr>') print('</thead>') print('<tbody>') def prn_item(items): items = items.split(',') print('<tr>', end='') for item in items: print('<td align="right">', item, '</td>', sep='', end='') print('</tr>') # Commandline Arguments if len(sys.argv) != 2: prn_err() sys.exit() else: CsvFile = sys.argv[1] # Initial style print(Init_Style) cnt = 0 tbl = 0 with open(CsvFile) as f: for line in f: line = line.rstrip() #print(line) if line[:3] == ',,,': if tbl == 0: continue else: end_table() print('<p></p>') tbl = 0 cnt = 0 else: if tbl == 0: begin_table() prn_caption(line.replace(',','')) tbl = 1 else: if cnt == 1: prn_header(line.rstrip(',')) else: prn_item(line.rstrip(',')) cnt += 1 end_table()
適当なエディタで入力後、ファイル名をcsv-h_html.py等として、実行権を与える。
$ chmod +x csv-h_html.py
実際の実行には、引数として上記でダウンロードした変換したいcsvファイルを指定する。
$ csv-h_html.py 変換したいファイル.csv
もし、ファイルで受けたい場合は、以下のようにリダイレクトして保存する。
$ csv-h_html.py 変換したいファイル.csv > 貼り付け元.html
変換した表を、はてなブログに貼り付け
変換した表を貼り付けたいはてなブログを開き、「HTML編集」を選択。
表を貼り付けたいところに、コピペする。
おわりに
超ローテクで手抜きだけど、なんとか目的を果たせるスクリプトは作成できた。
どなたかの参考になれば幸いです。