0
2

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 1 year has passed since last update.

Excel業務(無駄)を自動化したい part4 表作り

Posted at

はじめに

このサイトでは、社会人なりたての私が無駄を省くための戦いをまとめています。
今回のテーマは、pythonのライブラリを用いて、Excelをいじっていきます。
ライブラリ名は、openpyxlです。

実行環境

Windows10
Python 3.10.5

openpyxlとは?

openpyxlはExcelファイル(.xlsx)を読み書きできるツールです。
公式ドキュメント openpyxl/openpyxl-Bitbucket
詳しくはこちら!
今回はExcelファイル内のデータを読み込んで、分析するのではなく、
代入したいだけなので、pandasではなくopenpyxlを使用しています!

指定の表をExcelで作成

今回は、openpyxlを使用して表を作っていきます。
表を作る上で、セルの操作が必要です。
openpyxlを用いて、以下を操作します。
・セルの枠線
・セルの背景色
・文字の代入
セルの枠線はBorder関数、Side関数、
セルの背景色はPatternFill関数で操作できます。

セルの枠線の操作に使用する関数
border = Border(top=Side,    #上枠線
                bottom=Side, #下枠線
                left=Side,   #左枠線
                right=Side)  #右枠線

Side = Side(style="thin",    #枠線のスタイル ex)点線、直線 etc.
            color="000000")  #枠線の色
セルの背景色を変更する関数
color = PatternFill(patternType='solid', #塗りつぶすパターン ex)単色、ドット、縞模様 etc.
                    fgColor='ffffff')    #背景色

以上の関数を使用して、表を作成していきます。

実践

今回は以下の表をExcelに表示していきます。

No name year
1 nakano 26
2 ito 26
3 sato 23
importリスト
import openpyxl
from openpyxl.styles.fills import PatternFill
from openpyxl.styles.borders import Border, Side
表作成
xlsx_path = "Excelファイルのパス"
wb = openpyxl.load_workbook(xlsx_path)
ws = wb.worksheets[0]

tableList = [["No","name","year"],
            ["1","nakano","26"],
            ["2","ito","26"],
            ["3","sato","23"]]

gray = PatternFill(patternType='solid',fgColor='cccccc')
white = PatternFill(patternType='solid',fgColor='ffffff')
Side = Side(style="thin",color="000000")
border = Border(top=Side,bottom=Side,left=Side,right=Side)

for x in range(1,5):
    for y in range(1,4):
        ws.cell(row=x,column=y).value = tableList[x-1][y-1]
        ws.cell(row=x,column=y).border = border
        if x%2==1:
            ws.cell(row=x,column=y).fill = white
        else:
            ws.cell(row=x,column=y).fill = gray

wb.save(xlsx_path)

上記のコードを実行すると、指定の表を作成することができました。
スクリーンショット 2022-10-23 190412.png

終わりに

セルの操作に関しては、すべて紹介できる技量がなかったので、表作成の部分に絞って紹介しました。PatternFill関数のpatternTypeや、Side関数のstyleはいじっていて面白いのでお試しください。

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?