0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

画像リンク付Markdownの表をexcelで編集できるようにする方法

Last updated at Posted at 2020-12-15

モチベーション

画像を貼り付けたマークダウンの表をエクセルで編集したい!ということがありました。(トレードオフ表や台帳)
ところが、VScodeのプレビューをエクセルにコピペしても、画像のリンクを持ってくることが出来ませんでした。
画像のリンクが付いてこないと、編集後エクセルからマークダウンにコピペした後、画像のパスを打ち直す必要があり、大変です。
ということで、pythonでスクリプトを作ることとしました。(かなり、やっつけ仕事ですが)

やったこと

  1. VScodeのマークダウンの表をコピー
  2. 下記のコードを実行
  3. エクセルへ貼り付け
  4. エクセルで編集
  5. エクセルでコピー
  6. VScodeに貼り付け

画像のリンクが付いているので、何もしなくても画像が表示される!素晴らしい

md_table2df.py
import mistune
import pyperclip
import pandas as pd
import re

md = mistune.Markdown()
res = md(pyperclip.paste())#クリップボードからテキストを取得して、HTMLに変換
pattern = '<img src="(.*)" alt="(.*)">'
rep = '![\\2](\\1)'
rep_tex = re.sub(pattern,rep,res)#画像の部分をマークダウン記法に変換
df = pd.read_html(rep_tex)[0]#dataframe作成
df.to_clipboard(index=False)#エクセルに貼り付けるため、クリップボードへコピー

【コードの説明】
手順は正直まどろっこしい。。。もっといい方法ありそう

  1. マークダウンのテキストをクリップボードから取り出し
  2. 取り出したテキストをHTMLへ変換
  3. HTMLの画像の箇所を正規表現を使用してマークダウン記法に置換
  4. pandasでHTMLから表を作成
  5. その表をクリップボードへ入れる

感想

ググってもありそうで、なかったです
プレビュー画面をコピペすれば、大部分はエクセルに持ってこれるので、あんまり需要ないのかな
それとも他に良い方法があるのかなぁ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?