首先架設好MariaDB(MySQL)以及準備好資料庫
然後安裝Python並且加上openpyxl模組、mysql-connector-python模組〈也有pymysql模組〉
最後再來準備個Excel就可以開始
首先確認可以用 python來打開Excel檔
import openpyxl
fn = test1.xlsm
wb = openpyxl.load_workoook(fn)
print(type(wb))
print("列出全部工作表", wb.sheetnames)
print("目前使用中的工作表〈上次最後存檔的工作表〉", wb.active)
#指定操作的工作表
ws = wb['工作表1']
#如果是使用中的工作表可以用 ws = wb.active喔
#列出全工作表1內容
for row in ws.iter_rows[values_only=True):
print(type(row)
print(row)
#關閉檔案
wb.close()
這樣就可以測試了
再來確認python可以正常連線mysql,這邊要注意的是mysql的主機在遠方的話會無法連線,所以主機還要設定成可以遠方連線的狀態
import mysql.connetor
conn = mysql.connector.connect(
host = 'localhost' #遠方的話請改成IP
user='user'
password='pasword'
charset='utf8' # 先宣告成utf8格式
)
cursor = conn.cursor()
cursor.execute("show databases;")
result = cursor.fetchall()
print(result)
conn.close()
看測試有沒有正常連線
接下來就是兩個組合一起,把Excel的資料寫到資料庫中
import mysql.connetor
import openpyxl
fn = 'test1.xlsm'
wb = openpyxl.load_workoook(fn)
ws = wb.active
#mysql Command
command = "INSERT INTO Test1 (No) VALUES ('{0}')"
# 這邊用{0}就是等一下把Excel的資料放進來的變數
for row in ws['A2':'A9999']:
for cell in row:
if cell in row:
var = cell.value
command1 = command .formart(val)
cursor.execute(command1)
conn.commit()
conn.close()
wb.close()
以上就可以把資料寫到資料庫中,至於反向也是類似方式
變成資料庫查詢後的資料再寫到Excel中