2024年12月21日 星期六

淺嚐MariaDB(Mysql)加python加excel

 首先架設好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中


沒有留言: