機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【python】【Tkinter】【Excel】GUIからCSVをExcelに変換する方法(part1)

前回作ったアプリをGUIから動かすためにTkinterを使ってみる

■はじめに

前回、CSVのデータを抽出しEXcelにまとめ、かつ散布図も作成する方法を紹介しました。

stjun.hatenablog.com

 ただし、必ずしもCSVが次のように3行目から数値データで、3列分あるとは限りません。

f:id:stjun:20190724221216p:plain

前回、対象としたCSVファイルの中身

7行目から数値データが始まる場合もあるし、5列分の数値データがある場合もあります。今のままでは、CSVの中身がちょっと変わっただけでコードを修正しないといけません。自分で使う分には良いですが、のちのち他者に使ってもらうことを考えるとGUIから指定できるようにした方が良さそうです。

今回はまずTkinterを使って簡単なGUIを作成します。処理は次回の記事で書きたいと思います。

 

■コード

import tkinter as tk

#メインウインド
root=tk.Tk()
#root.geometry("500x300")
root.title("CSVからExcelファイルに変換+散布図を自動作成")


#frameの作成
frame1=tk.LabelFrame(root,text="実行タブ",foreground="green")
frame1.grid(row=0,sticky="we")

frame2=tk.LabelFrame(root,text="詳細タブ",foreground="green")
frame2.grid(row=1,sticky="we")


#frame1(上)に表示する部品
message=tk.Label(frame1,text="ファイルを選択してください",width=30)
message.grid(row=0,column=0)

blank=tk.Label(frame1,width=3)
blank.grid(row=0,column=1)

button=tk.Button(frame1,text="選ぶ",width=10)
button.grid(row=0,column=2)


#frame2(下)に表示する部品
text_title=tk.Label(frame2,text="Excelのファイル名",width=20)
text_title.grid(row=0,column=0,padx=5)

text_row=tk.Label(frame2,text="データは何行目からか",width=20)
text_row.grid(row=0,column=1,padx=5)

text_column=tk.Label(frame2,text="何列あるか",width=20)
text_column.grid(row=0,column=2,padx=5)



#必要な項目の欄
entry_title=tk.Entry(frame2,text="CSVからExcelファイルに変換",width=20)
entry_title.grid(row=1,column=0,padx=5)

entry_row=tk.Entry(frame2,text="CSVからExcelファイルに変換",width=20)
entry_row.grid(row=1,column=1,padx=5,pady=5)

entry_column=tk.Entry(frame2,text="CSVからExcelファイルに変換",width=20)
entry_column.grid(row=1,column=2,padx=5,pady=5)

root.mainloop()

 上記コードを実行すると以下の画面が現れます。

 

f:id:stjun:20190819231257p:plain

まず上側の実行タブ内に、「ファイルを選択してください」と書かれたテキストと「選ぶ」と書かれたボタンを作成します。選ぶボタンを押すと任意のCSVをマウスで選べるようにする予定です。詳しい処理内容は次の記事を見てみて下さい。また処理が完了したら「ファイルを選択してください」⇒「Excelファイルを作成しました」と表示させる予定です。

stjun.hatenablog.com

 

次に下側の詳細タブですが、まず最低限、次の3つを作りました。

  1. Excelのファイル名:作成されるExcelファイルのファイル名
  2. データは何行目からか:例えば3行目まで説明文で4行目から数値データが存在するCSVを処理したい場合は4とします。
  3. 何列あるか:数値データが何列分あるかです、例えば冒頭の画像では3列分あるため3とします。

 以上でGUIの作成は終わりです。

 

■本紹介

今回は少しpythonから離れて実務に近い本を紹介したいと思います。

社内、学内や学会等で発表する機会があるかと思いますが、その際に非常に役に立つ本です。

 

 この本ではわかりやすい資料を作るにはどういったことに気を付ければ良いのかが書かれています。特に画像や文字の配置や、文字のフォント、文字の大きさ、聴講者の目の流れを意識したスライド作りといった、すぐに使えるネタがたくさん記載されており、私も普段から非常にお世話になっている本です。

この本のおかげで今では資料作成は得意な業務になってるほどです。一読してみてはいかがでしょうか。

 

■最後に

次回から処理部分を書いていきたいと思います。