ChatGPTに、PythonでExcelファイルを操作するプログラムを書いてもらった

ChatGPTに、PythonExcelファイルを操作するプログラムを書いてもらいました。

指示文(プロンプト):

Pythonで新規にExcelファイルを生成して指定したカラムに指定した値を書き込んで保存するプログラムを作成してください

回答:

以下はPythonを使用して新しいExcelファイルを作成し、指定された列に値を書き込む方法です。具体的には、openpyxlパッケージを使用してExcelファイルを操作します。



import openpyxl

# 新規Excelファイルを作成し、Sheet1を選択する
workbook = openpyxl.Workbook()
worksheet = workbook.active

# ヘッダーを書き込む
worksheet.cell(row=1, column=1, value='ID')
worksheet.cell(row=1, column=2, value='Name')
worksheet.cell(row=1, column=3, value='Age')

# データを書き込む
worksheet.cell(row=2, column=1, value='001')
worksheet.cell(row=2, column=2, value='John')
worksheet.cell(row=2, column=3, value=25)

# Excelファイルを保存する
workbook.save('example.xlsx')

        

この例では、新しいExcelファイルを作成し、Sheet1を選択し、ヘッダーを書き込んで、データを書き込んでいます。そして、workbook.save()メソッドを使用してファイルを保存しています。最後に、保存するExcelファイルのファイル名を指定しています。

結果:

成功しました。

指示文(プロンプト)2:

Pythonで既存のExcelファイルを読み込んで、SQLiteに保存するプログラムを書いてください。テーブル名はExcelのsheet名、カラム名Excelシートのヘッダー名としてください。

回答:

以下はPythonを使用して、既存のExcelファイルを読み込んでSQLiteに保存する方法です。具体的には、pandasライブラリを使用してExcelファイルを読み込み、SQLiteデータベースにデータを書き込みます。


import pandas as pd
import sqlite3

# Excelファイルを読み込む
excel_file = pd.read_excel('example.xlsx', sheet_name=None)

# SQLiteデータベースに接続する
conn = sqlite3.connect('example.db')

# 各シートのデータをSQLiteに書き込む
for sheet_name in excel_file:
    df = excel_file[sheet_name]
    df.to_sql(sheet_name, conn, index=False, if_exists='replace')

# SQLiteデータベースとの接続を閉じる
conn.close()

        

この例では、pandasライブラリを使用してExcelファイルを読み込み、pd.read_excel()メソッドを使用してExcelファイル全体を読み込みます。その後、SQLiteデータベースに接続し、各シートのデータをSQLiteデータベースに書き込みます。df.to_sql()メソッドを使用して、Excelファイルのシート名をテーブル名として、各列のヘッダー名をカラム名としてSQLiteデータベースに書き込みます。最後に、SQLiteデータベースとの接続を閉じます。

結果:

こちらも成功しました。テスト用にDBの内容をそのまま表示するスクリプトも走らせています。