![](/img/trans.png)
[英]Read XY Coordinates from Multiple Excel Sheets Using Abaqus/Python Script
[英]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表的需求。
要通過xlrd
( 其文檔 )讀取回顯表的數據以生成插入sql,然后通過pyodbc
, pymssql
或其他方法執行這些插入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 Driver
和Quickstart: Use Python to query an Azure SQL database
以了解如何使用pyodbc或pymssql連接和查詢Azure SQL數據庫。
您可以通過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.