やりたいこと
- 入力: エクセルを範囲選択して、コピーしたもの
- 出力: ペーストすると、1セル1行のテキストとして貼り付けられる。
エクセルのセルを範囲選択し、それを縦一列にして貼り付けるということを繰り返すことがありました。
あまりに単純作業で辛かったため、Python3 の勉強がてらスクリプトを作って使いました。
今回はそれをノートいたします。
環境
- Python 3.6.4
- Windows 7 Professional 32 bit
- Excel 2013
作ったコード
import pyperclip cb = pyperclip.paste() cb_splited = cb.split('\t') # エクセル等のセル内で改行した場合、最初と最後に半角ダブルクォーテーションがあり、これを除去 cb_splited_striped = [ v.strip('"') for v in cb_splited ] cb_splited_striped_text = '\r\n'.join(cb_splited_striped) print('クリップボードは以下の状態に編集されます。') print(cb_splited_striped_text) pyperclip.copy(cb_splited_striped_text)
注意点(2018年1月6日追記)
- \ を ¥ に間違えていたたため最初、動かなかった。
おわりに
GitHub にアップしました。
Python は書き始めて数日程度ですけれども、スクリプトを書くにあたって次のページが参考になりました。ありがとうございます!
- クリップボードへのアクセス
初心者でも簡単!Pythonでデータを加工してクリップボードにコピーをする方法 - 文字列の先頭末尾の文字除去
Pythonで文字列の先頭と末尾から空白や文字列を削除する:strip() | UX MILK - リストをいい感じに扱いたい groovy の collect みたいに
pythonの内包表記を少し詳しく – Qiita
ジェダイ流・Pythonの内包表記 | プログラミング | POSTD - リストを結合して文字列化
【Python入門】list joinで文字列を連結する方法 | プロスタ
以上です。