簡體   English   中英

從多個Excel工作表讀取並加載到Azure SQL DB表的Python腳本

[英]Python Script to read from multiple excel sheets and load to Azure SQL DB Tables

我有一個包含多個電子表格的excel文件,我需要使用python腳本從excel文件中讀取每個工作表,並將數據加載到相應的Azure SQL DB表中。

1個Excel文件6張= 6個Azure SQL DB表

盡早對此要求進行任何評估。

謝謝

例如,我創建了一個包含兩張紙的excel文件,如下圖。

在此處輸入圖片說明

有兩種解決方案可滿足您將數據從excel表傳輸到SQL Azure表的需求。

  1. 要通過xlrd其文檔 )讀取回顯表的數據以生成插入sql,然后通過pyodbcpymssql或其他方法執行這些插入sql。 這是我的示例代碼,用於從Python的Excel工作表中讀取數據。

     import xlrd book = xlrd.open_workbook("samples.xlsx") sheet_names = book.sheet_names() for sheet_name in sheet_names: sheet = book.sheet_by_name(sheet_name) recs = ",".join(["('{0[0]}', {0[1]})".format(sheet.row_values(i)) for i in range(sheet.nrows)]) insert_sql = f"insert into {sheet_name} (name, age) values {recs};" print(insert_sql) # Connect to execute the insert data sql via pyodbc, pymssql or others 

    上面代碼的結果是。

     insert into Table_A values ('Peason1', 18.0),('Peason2', 19.0),('Peason3', 20.0),('Peason4', 21.0),('Peason5', 22.0),('Peason6', 23.0),('Peason7', 24.0),('Peason8', 25.0),('Peason9', 26.0),('Peason10', 27.0); insert into Table_B values ('Peason11', 27.0),('Peason12', 26.0),('Peason13', 25.0),('Peason14', 24.0),('Peason15', 23.0),('Peason16', 22.0),('Peason17', 21.0),('Peason18', 20.0),('Peason19', 19.0),('Peason20', 18.0); 

    同時,請參閱Azure官方文檔Python SQL DriverQuickstart: Use Python to query an Azure SQL database以了解如何使用pyodbc或pymssql連接和查詢Azure SQL數據庫。

  2. 您可以通過pandas讀取excel文件的工作表數據,然后通過SQLAlchemy連接通過pandas.DataFrame.to_sql函數將數據寫入SQL Azure。 這是我的示例代碼,用於讀取excel文件的工作表數據以獲取pandas數據框。

     import xlrd import pandas as pd file_name = "samples.xlsx" col_names = ["name", "age"] book = xlrd.open_workbook(file_name) sheet_names = book.sheet_names() for sheet_name in sheet_names: df = pd.read_excel(file_name, sheet_name=sheet_name, index_col=None, header=None, names=col_names) print(df) # Use df.to_sql with SQLAlchemy connection, that you can do it by yourself via refer to the pandas and SQLAlchemy documents. 

    上面代碼的結果是。

      name age 0 Peason1 18 1 Peason2 19 2 Peason3 20 3 Peason4 21 4 Peason5 22 5 Peason6 23 6 Peason7 24 7 Peason8 25 8 Peason9 26 9 Peason10 27 name age 0 Peason11 27 1 Peason12 26 2 Peason13 25 3 Peason14 24 4 Peason15 23 5 Peason16 22 6 Peason17 21 7 Peason18 20 8 Peason19 19 9 Peason20 18 

    有關通過SQLAlchemy連接SQL Azure的信息,請參閱SQLAlchemy文檔Microsoft SQL Server和另一個SO線程使用Python中的SQLAlchemy連接到Azure數據庫

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM