最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)SqlServer查詢結(jié)果并寫入多個(gè)Sheet頁的方法詳解

 更新時(shí)間:2022年12月06日 15:02:17   作者:Carl_奕然  
這篇文章主要為大家整理了兩個(gè)Python實(shí)現(xiàn)SqlServer查詢結(jié)果并寫入多個(gè)Sheet頁的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下

1、引言

小絲:魚哥,我想請(qǐng)教一個(gè)問題。

小魚:國慶假期你經(jīng)歷了什么,讓你變得如此的 “善良”?

小絲:別這么說,我一直很善良,至少,很正直…

小魚:打住,直接點(diǎn), 你有什么需要幫助的?

小絲:我就是想把查詢的結(jié)果也入到excel表中

小魚:然后呢?

小絲:sqlserver數(shù)據(jù)庫。

小魚:…好吧,還有其他要求嗎?

小絲:沒有了。

小魚:OK,我就花費(fèi)幾分鐘,給你整一個(gè)。

2、代碼實(shí)戰(zhàn)

2.1 openpyxl寫入excel

2.1.1 安裝

凡是涉及第三方庫,必須需要安裝,

老規(guī)矩,直接pip安裝

pip install openpyxl
pip install pymssql

其它安裝方式,直接看這兩篇:

《Python3,選擇Python自動(dòng)安裝第三方庫,從此跟pip說拜拜!!》

《Python3:我低調(diào)的只用一行代碼,就導(dǎo)入Python所有庫!》

2.1.2 代碼

代碼示例

# -*- coding:utf-8 -*-
# @Time   : 2022-10-10
# @Author : Carl_DJ


'''
實(shí)現(xiàn)功能:
    1、python直接鏈接sqlserver數(shù)據(jù)庫,讀取數(shù)據(jù)庫內(nèi)容
    2、執(zhí)行 查詢結(jié)果,并寫入到excel表中
應(yīng)用模塊:
	pymssql,os,openpyxl

'''
import os
import pymysql #mysql數(shù)據(jù)庫鏈接
import pymssql #sqlserver數(shù)據(jù)庫鏈接
import openpyxl



#輸出文件夾
outfile_path = './data'

#如果沒有outfile_path 這個(gè)文件夾,就自動(dòng)創(chuàng)建
if not os.path.exists(outfile_path):
    os.mkdir(outfile_path)

#輸出文件名稱
filename = r'SQLtest.xlsx'
file_path= os.path.join(outfile_path,old_filename)


#創(chuàng)建數(shù)據(jù)庫鏈接
#鏈接SqlServer
conn = pymssql.connect(host = "localhost",
					   port = 3306,
					   user = "",
					   psd = "",
					   database = "")

if conn:
    print("數(shù)據(jù)庫鏈接成功")

time.sleep(3)

#sql查詢語句
sql = "select UUID,KEYID,TYPE,NAME,PRICE from KEY_INFO WHERE NAME LIKE '%測試商品名稱'"


#創(chuàng)建游標(biāo)
cur = conn.cursor()
#執(zhí)行sql語句
cur.execute(sql)

#返回查詢結(jié)果
result = cur.fetchall()

#創(chuàng)建一個(gè)工作簿對(duì)象
wb = openpyxl.Workbook()
#定義sheet名
Key_Info_sheet = wb.create_sheet('KEY_INFO ',0)

#獲取默認(rèn)sheet頁
# Key_Info_sheet = book.active

#獲取表頭信息
h1 = [filed[0] for filed in cur.description]
Key_Info_sheet.append(h1)
for i in result:
    Key_Info_sheet.append(i)
wb.save(file_path)


# 關(guān)閉數(shù)據(jù)庫鏈接
cur.close()
conn.close()

執(zhí)行結(jié)果

嗯,這就非常完美的寫入excel了。

2.2 pandas寫入excel

小絲:魚哥,我這一次要執(zhí)行多個(gè)SQL語句,

小魚:… 你不是說沒有了嗎

小絲:突然想起來的。

小魚:好吧,還有其他的要求嗎?

小絲:然后把每個(gè)SQL查詢結(jié)果寫入不同的sheet頁

小魚:xxxxxx??!還有嗎?????。。?/p>

小絲:沒有了。

小魚:有也沒有。

關(guān)于小絲提的要求, 我換一個(gè)寫法,畢竟,多學(xué)幾個(gè)知(姿 )識(shí)(勢 ),百利而無一害。

2.2.1 安裝

這次有pandas來寫。

所以,第一步,安裝

pip install pandas

其它安裝方式,直接看這兩篇:

《Python3,選擇Python自動(dòng)安裝第三方庫,從此跟pip說拜拜??!》

《Python3:我低調(diào)的只用一行代碼,就導(dǎo)入Python所有庫!》

2.2.2 代碼

sql文檔

代碼示例

# -*- coding:utf-8 -*-
# @Time   : 2022-10-10
# @Author : Carl_DJ

'''
實(shí)現(xiàn)功能:
    1、python直接鏈接SqlServer數(shù)據(jù)庫,實(shí)現(xiàn)SQL查詢
    2、同時(shí)執(zhí)行多條sql語句,查詢結(jié)果分別寫入不同的sheet頁中;
應(yīng)用模塊:
    pandas,pymssql,os,time

'''
import pandas as pd
from pandas.io import sql
import pymssql
import time,os

#設(shè)置時(shí)間戳
now = time.strftime("%Y_%m_%d-%H%M%S",time.localtime())
print(f'執(zhí)行時(shí)間:{now}')

#創(chuàng)建數(shù)據(jù)庫鏈接
#鏈接SqlServer
conn = pymssql.connect(host = "localhost",
						port = 3306,
						user = "",
						psd = "",
						database = "")

if conn:
    print("數(shù)據(jù)庫鏈接成功")

time.sleep(3)

#輸出文件夾
file_path = './data'

#如果沒有outfile_path 這個(gè)文件夾,就自動(dòng)創(chuàng)建
if not os.path.exists(file_path):
    os.mkdir(file_path)
    
#輸出文件格式
Outfile_name = ( 'SqlsTest' + now + '.xlsx')
#讀取sql文件名稱
sqls_name = r'SqlsFile.txt'
#sql執(zhí)行腳本文件(參數(shù)化路徑)
MCsql_file = os.path.join(file_path,MCsql_name)
#輸出文件夾路徑
Outfile_path = os.path.join(file_path,Outfile_name)

#把查詢結(jié)果寫入不同的sheet頁,對(duì)sheet頁進(jìn)行命名
sheet_names = ['KEY_INFO','PRO_INFO']

#定義讀取sql方法,返回sql語句
def sqls(MCsql_file):
    global sqlstrs
    with open(MCsql_file,'r',encoding='utf-8') as f:
        #每個(gè)sql之間,以“;”作為分隔符
        sqlstrs = f.read().split(';')

#定義數(shù)據(jù)查詢方法
def quert_method(sql_str):
    #設(shè)置全局變量
    global df
    df = pd.read_sql(sql_str,con=conn)

#執(zhí)行程序
if __name__ == '__main__':
    sqls(MCsql_file)
    #寫入excel文件
    with pd.ExcelWriter(Outfile_path) as writer:
        for i in range(0,len(sqlstrs)):
            quert_method(sqlstrs[i])
            df.to_excel(writer,sheet_name=sheet_names[i],index=False,header=True)

print("數(shù)據(jù)寫入完成!")

# 關(guān)閉數(shù)據(jù)庫鏈接
conn.close()
print("數(shù)據(jù)庫鏈接關(guān)閉!")

執(zhí)行結(jié)果

3、總結(jié)

看到這里,今天的分享差不多就完成了。

今天主要通過鏈接SqlServer數(shù)據(jù)庫,把查詢數(shù)據(jù)結(jié)果寫入到excel表中。

同時(shí),應(yīng)用openpyxl 和pandas兩個(gè)模塊,分別對(duì)excel的操作。

到此這篇關(guān)于Python實(shí)現(xiàn)SqlServer查詢結(jié)果并寫入多個(gè)Sheet頁的方法詳解的文章就介紹到這了,更多相關(guān)Python寫入多個(gè)Sheet頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?timeit使用小結(jié)

    Python?timeit使用小結(jié)

    本文主要介紹了Python?timeit使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 雙向RNN:bidirectional_dynamic_rnn()函數(shù)的使用詳解

    雙向RNN:bidirectional_dynamic_rnn()函數(shù)的使用詳解

    今天小編就為大家分享一篇雙向RNN:bidirectional_dynamic_rnn()函數(shù)的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 基于Python實(shí)現(xiàn)的影視數(shù)據(jù)智能分析系統(tǒng)

    基于Python實(shí)現(xiàn)的影視數(shù)據(jù)智能分析系統(tǒng)

    數(shù)據(jù)分析與可視化是當(dāng)今數(shù)據(jù)分析的發(fā)展方向,大數(shù)據(jù)時(shí)代,數(shù)據(jù)資源具有海量特征,數(shù)據(jù)分析和可視化主要通過Python數(shù)據(jù)分析來實(shí)現(xiàn),本文給大家介紹了如何基于Python實(shí)現(xiàn)的影視數(shù)據(jù)智能分析系統(tǒng),文中給出了部分詳細(xì)代碼,感興趣的朋友跟著小編一起來看看吧
    2024-01-01
  • PyTorch手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類

    PyTorch手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類

    這篇文章主要介紹了PyTorch手寫數(shù)字?jǐn)?shù)據(jù)集進(jìn)行多分類,損失函數(shù)采用交叉熵,激活函數(shù)采用ReLU,優(yōu)化器采用帶有動(dòng)量的mini-batchSGD算法,需要的朋友可以參考一下
    2022-03-03
  • python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例

    python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例

    今天小編就為大家分享一篇python判斷文件是否存在,不存在就創(chuàng)建一個(gè)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python簡單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目

    Python簡單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目

    這篇文章主要介紹了Python簡單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python對(duì)圖片進(jìn)行resize、裁剪、旋轉(zhuǎn)、翻轉(zhuǎn)問題

    Python對(duì)圖片進(jìn)行resize、裁剪、旋轉(zhuǎn)、翻轉(zhuǎn)問題

    這篇文章主要介紹了Python對(duì)圖片進(jìn)行resize、裁剪、旋轉(zhuǎn)、翻轉(zhuǎn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python中刪除某個(gè)元素的方法解析

    python中刪除某個(gè)元素的方法解析

    這篇文章主要介紹了python中刪除某個(gè)元素的方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python OpenCV對(duì)圖像進(jìn)行模糊處理詳解流程

    Python OpenCV對(duì)圖像進(jìn)行模糊處理詳解流程

    OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面很多通用算法
    2021-10-10
  • 詳解python函數(shù)傳參傳遞dict/list/set等類型的問題

    詳解python函數(shù)傳參傳遞dict/list/set等類型的問題

    這篇文章主要介紹了詳解python函數(shù)傳參傳遞dict/list/set等類型的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論

宝山区| 建宁县| 竹山县| 元氏县| 开封县| 扬州市| 威信县| 高雄县| 寿光市| 望奎县| 云浮市| 沿河| 金塔县| 威宁| 陈巴尔虎旗| 北海市| 庐江县| 略阳县| 泸溪县| 和林格尔县| 扶沟县| 南部县| 且末县| 五原县| 遂溪县| 崇左市| 日土县| 郧西县| 尚义县| 长葛市| 鹿邑县| 双桥区| 宁陵县| 济南市| 江阴市| 黄大仙区| 汉沽区| 崇阳县| 新建县| 龙门县| 萨迦县|