学習めも。

Python、Anaconda学習中🔰 ブログ引っ越ししました😄よろしくお願いします!https://noeiganolife.com/

記録用🔰

プログラミング以外の記事はこちら

セルの値を読み書き

シートの指定をする用法

import openpyxl
wb = openpyxl.load_workbook("Data/売上データ.xlsx")
#シート名で指定(シート名を記載)
ws = wb["4月売上"]
print(ws.title)
 #インデックス番号で指定する
ws2 = wb.worksheets[1]
print(ws2.title)



シートからセルを取得する

import openpyxl

wb = openpyxl.load_workbook("売上データ_ copy")
ws = wb["4月売上"]

#セル番地で指定
c = ws["A1"]
print(c.coordinate)
print(c.row)
print(c.colum)
#行列番号で指定
c2 = ws.cell(1, 1)
print(c2.coordinate)
print(c2.row)
print(c2.column)

結果

A1(セル番地)
1(行番号)
1(列番号)
A1
1
1



セルの読み取り

変数.value

出力結果について

①数値や文字はそのまま出力される
②日付⇨datetime型で出力される
 例)セル表示では2020/04/01でも出力では「2020-04-01 00:00:00」と時刻まで表示される
③数式
 ⇨数式そのものが取得される

数式の値だけを取得したいとき

以下のようにブック名の後にdata_only=Trueと入れる!

import openpyxl

wb = openpyxl.load_workbook("_____.xlsx", data_only=True)
:
:


セルに値を書き込む

c.value = 値

コード例

import openpyxl
import datetime

wb = openpyxl.load_workbook("売上データ_ copy.xlsx")
ws = wb["4月売上"]

# 日付のデータを作成
c = ws["A10"]
c.value = datetime.datetime(2020, 4, 30)
c2 = ws["B10"]
c2.value = "株式会社 鈴木商店"
c3 = ws["C10"]
c3.value = "商品B"
c4 = ws["D10"]
c4.value = 3400
c5 = ws["E10"]
c5.value = 12
# 数式
c6 = ws["F10"]
c3.value = "=D10*E10"

wb.save("売り上げデータ_4月修正.xlsx")

補足

日付は「datetime型」という「日時専用のデータ型」で値を代入する。
値を作成するためには、import datetimeでモジュールをインポートすること。

import datetime
#日付データ
d = datetime.datetime(年、月、日)
#
dt = datetime.datetime(年、月、日、時、分、秒)



セルの表示形式を設定

#変数Cにセルが代入されている場合
c.number_format = 表示形式(ユーザー定義の書式記号)



書式記号

#日付
yyyy/mm/dd
yyyy/m/d
yyyy/mm/dd hh:mm:ss
yyyy/mm/dd h:mm:ss

#数値
#,##0 (1,200)
0000 (0020)
#### (20)
0.0  (12.0)

使用例

import openpyxl
import datetime

wb = openpyxl.load_workbook("売上データ_ copy.xlsx")
ws = wb["4月売上"]

c = ws["A10"]
c.value = datetime.datetime(2020, 4, 30)
# 日付の表示形式
c.number_format = "yyyy/m/d"
c2 = ws["B10"]
c2.value = "株式会社 鈴木商店"
c3 = ws["C10"]
c3.value = "商品B"
c4 = ws["D10"]
c4.value = 3400
# 数値の表示形式
c4.number_format = "#,##0"
c5 = ws["E10"]
c5.value = 12
c6 = ws["F10"]
c6.value = "=D10*E10"
# 数値の表示形式
c6.number_format = "#,##0"

wb.save("売り上げデータ_4月修正2.xlsx")

f:id:Moriane:20210814163914p:plain