投稿

10月, 2020の投稿を表示しています

PythonのopenpyxlでExcelの行と列を入れ替えてみた

イメージ
今回のPythonの勉強は、Excelの行と列を入れ替えることをしてみました。 予め、都道府県とその都道府県庁所在地をリスト化したExceを用意し、そのリストの行と列を入れ替えたものを新しい別のシートに作成するというもの。 以下がExcelファイル「Example.xlsx」の中身。 Pythonのコードは以下の通り。 解説はコード内にコメントしてあります。 #openpyxlモジュールを使用する import openpyxl #既存のExcelファイルを開く wb=openpyxl.load_workbook('Example.xlsx') #既存ファイルのシートを指定 sheet1=wb['Sheet1'] #既存ファイルに新規シートをシート名と位置を指定して作成 sheet2=wb.create_sheet(title='Sheet2',index=1) #Sheet1の値のある行数を取得 rw=sheet1.max_row #Sheet1の値のある列数を取得 cl=sheet1.max_column #iは値のある行数分繰り返す #jは値のある列数分繰り返す #range(start,stop)はstart≦i<stopでstopで指定した値は含まないので「+1」している for i in range(1,rw+1): for j in range(1,cl+1): C1=sheet1.cell(row=i,column=j) #sheet1のセルの行番号と列番号を指定している C2=sheet2.cell(row=j,column=i) #sheet1のセルの行番号と列番号を入れ替えてsheet2のセルを指定している C2.value=C1.value #sheet2のセルにsheet1のセルの値を代入 wb.save('Example.xlsx') #上書き保存 結果は以下の通り。 最初のリストの行数は6、列数は2。つまり、 rw=sheet1.max_row=6 cl=sheet1.max_column=2 for文は、 for i in range(1,7): #1≦i<7、つまり1

【まとめ】Pythonのopenpyxlで行うExcelの基本操作

イメージ
Pythonの勉強を再開し、Excelを操作して自動化させるべく色々と進めています。 使用本は、『 退屈なことはPythonにやらせよう〜 』、私が購入したのは 初版第1刷で2017年発刊分 です。 Github の方にある正誤表の中身を本に書き写しておきます。 この本の12章がExcelに関することで、ここを中心に、わからない場合は他の章を参照して進めています。 私の環境は、Ubuntuの公式Docker ImageにPythonやopenpyxl、JupyterLabをインストールして、Pythonの結果が随時確認できるようにしています。詳細は、拙ブログ『 【まとめ】MacでPythonのGUIライブラリが使えるDockerの設定方法 』にまとめています。 マシン:MacBook Pro OS:macOS Catalina(10.15.7) 仮想環境:Docker Desktop エディタ:JupyterLab Python:Ver.3.8.2 openpyxl:Ver.3.0.5 Excelを操作するといいながら、以下の画像はGoogleスプレッドシートです。ファイルは拡張子「.xlsx」で保存すれば、Excelが無くてもPythonで操作が可能で、GoogleスプレッドシートでもOpenOfficeで開きますので確認も可能です。 そんな中、Excelを操作する基本的なコードを備忘録としてまとめました。 #openpyxlモジュールを使用する import openpyxl #新規Excelファイルを開く wb=openpyxl.Workbook() #このExcelを保存する wb.save('example_copy.xlsx') #新規ファイルのシート名を確認する wb.sheetnames #シート名は「Sheet」の1シートのみある状態 #シート「Sheet」を指定する wb['Sheet'] #シート名を取得する wb['Sheet'].title #シート「Sheet」のシート名を変更する wb['Sheet'].title='Example 1' #シート名を確認する

なぜPython?Excelを操作して自動化したいのです!その方法と注意点

イメージ
昨日まででDockerでの開発環境構築は一応完成し落ち着いたので、やっとPythonの勉強を再開することにしました。 自分の現在のPythonの勉強方法と、ちょっと注意すべきことがありましたので以下に述べていこうと思います。 目次 なぜPython?それはExcelを操作して自動化したいのです Pythonの教科書として購読中の書籍 PythonでExcel操作の開始 注意点 なぜPython? それはExcelを操作して自動化したいのです そもそもPythonを覚えて何をしたいか。 それは Excelを操作して自動化したい 、ということです。 私の本職は一応デザイナーを名乗っていて、ロゴ制作やWEB制作などをしていますが、InDesignで組版もしています。というか前職のメインはこちらでした。 冊子を組版したりもしていましたが、バリアブル印刷用にExcelでテキスト処理(主に関数を駆使して)してInDesignにデータ結合などで流し込みをしたりもよくしていました。 Excel関数だと関数自体が煩雑になりやすくて、自分で作っておきながら後で見返すと何がなんだか分からなくなる、それほどです。 で、このExcelでのテキスト処理をもっと効率よくしたいと。 Pythonの教科書として購読中の書籍 Python本は、『 Python本のオススメと絶対に挫折しないための学習方法とは | ガンマソフト株式会社 』を参考に以下のものを購入しました。 そもそもこの本を進めていって、 TurtleやTkinterが動かなくて、DockerでGUIライブラリを稼働させるように構築しよう と思った次第です。それだけでも買ってよかったです。 この書籍の後半は人工知能の話になるので割愛しましたが、懇切丁寧な解説でPythonの敷居を低めてくれました。 続けて、こちらを購入しました。Pythonの文法といいますか書き方といいますか、1冊目より深い解説をされていて、辞書的に使えるかなと思っています。ですので、この本は全体をざっと読むに留め、不明点がある時に読み返そうと思います。 後半はGUIの操作やゲームを作ることをしますので、そちらに興味のある方はいいのではないでしょうか。 PythonでExcel操作の開始 そして今

【まとめ】MacでPythonのGUIライブラリが使えるDockerの設定方法

イメージ
PythonのGUIライブラリをDocker Container内で稼働させたく模索して1週間、よもやカスタマイズしたDocker Imageを作成するどころかDockerfileやらDocker Composeやらを書くことになる日がこんなに早く来るとは思っても見ませんでした。 習うより慣れろ この言葉、使い倒されてもはや陳腐化しているこの言葉、やはり真理を突いています。 この言葉の真意、それは「インプットしたら即座にアウトプットしろ」。 真意を理解できた、そんな1週間でした。 さて、 MacでPythonのGUIライブラリをDocker Container内のJupyterlabから稼働させる方法 MacでPythonのGUIライブラリが使用可能なDockerをDockerfileにしてみた にてDocker Container内に構築したPythonとGUIライブラリを、Jupyterlabを介して稼働させる方法を模索してきました。 改めて、何をしたいか、何が必要か、をまとめ、こちらの環境もまとめてから、完成したDockerfileとDocker Composeを公開し、どのようにしたかを解説していきます。 目次 開発環境 したいこと 階層構造 Dockerfileの解説 Docker Composeの解説 今後の課題 参考サイト 開発環境 環境は、 マシン:MacBook Pro OS:macOS Catalina(10.15.7) 仮想環境:Docker Desktop エディタ:JupyterLab、Sublime Text 上記に追加で、 予めXquartzの導入と設定が必要 になります。 導入および設定の方法は、拙ブログの『 1 MacにXQuartzをインストール 』および『 2 XQuartzの環境設定を開く 』をご覧ください。 したいこと PythonをDockerで動かしたい Pythonは同じくDockerに導入したJupyterlabで編集したい PythonのGUIライブラリもJupyterlabで編集したい PythonのGUIライブラリの結果はMacのデスクトップ上