【Python】Python ~ 基本編 / Excelを扱う・OpenPyXL ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/11/05/221010

PythonでExcel を扱う機会があって
簡単にできたので、メモっとく

なお、使用するライブラリは、OpenPyXL。

目次

【1】環境設定
【2】サンプル
 例1:Hello world
 例2:新しいシートを追加
 例3:読み込み

【1】環境設定

pip install openpyxl

conda install openpyxl

【2】サンプル

例1:Hello world

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
ws["A1"].value = "書き込みテスト"

wb.save(".\sample.xlsx")
print("Done")

例2:新しいシートを追加

import openpyxl

wb = openpyxl.Workbook()
ws = wb.create_sheet(title="新しいシート")
for row in range(1, 10):
  for cell in range(1, 10):
    ws.cell(row, cell).value = "{}-{}".format(row, cell)

wb.save(".\sample.xlsx")
print("Done")

例3:読み込み

# 応用Excel表からCREATE TABLE作成
import openpyxl

wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb['sheet1']

create_query = "CREATE TABLE IF NOT EXISTS table_name (\n"

# ヘッダー部(row=1)は除外
for index in range(2, 1000):
  colume_name = sheet.cell(row=index, column=1).value
  data_type = sheet.cell(row=index, column=4).value

  if (colume_name is None):
    if (data_type is None):
      break
    else:
      continue

  if (index == 2):
    create_query = create_query + "  "
  else:
    create_query = create_query + "\n  ,  "
  create_query = create_query + f"{colume_name} {data_type}"

create_query = create_query + "\n);"

with open('create_table.sql', mode='w') as file:
  file.write(create_query)

print("Done")

関連記事

PythonExcel を扱うには
https://dk521123.hatenablog.com/entry/2019/11/05/221010
Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
Python ~ 基本編 / ファイル読込・書込 ~
https://dk521123.hatenablog.com/entry/2019/10/07/000000
Python ~ 基本編 / CSV
https://dk521123.hatenablog.com/entry/2019/11/07/214108
Python ~ 基本編 / YAML
https://dk521123.hatenablog.com/entry/2019/10/16/225401
Python ~ 基本編 / JSON
https://dk521123.hatenablog.com/entry/2019/10/19/104805