第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Pandas 將 SQL 導(dǎo)出到 Excel,如何進(jìn)行下拉?

使用 Pandas 將 SQL 導(dǎo)出到 Excel,如何進(jìn)行下拉?

不負(fù)相思意 2021-12-21 17:35:25
我有一個簡單的 MSSQL 表,其中包含如下數(shù)據(jù):IF OBJECT_ID('MY_BIG_TABLE') IS NOT NULL    DROP TABLE [dbo].[MY_BIG_TABLE]CREATE TABLE [dbo].[MY_BIG_TABLE](    [ID] [int] NOT NULL,    [PERSON] [varchar](50) NOT NULL,    [STREET] [varchar](50) NOT NULL,    [PHONE] [varchar](50) NOT NULL,    [BATCH_ID] [int] NOT NULL) ON [PRIMARY]GOINSERT INTO MY_BIG_TABLE (ID, PERSON, STREET, PHONE, BATCH_ID)VALUES     (1, 'BOB', 'MAIN STREET', '555-555-5555', 100),    (2, 'SANDY', 'ELM', '666-555-5555', 100),    (3, 'FRED', 'PINE', '777-555-5555', 200),    (8, 'BOB', 'DIRT', '888-555-5555', 200),    (52, 'GEORGE', 'RIVER ROAD', '999-555-5555', 700)我導(dǎo)出數(shù)據(jù)了它到Excel使用文件Python和Pandas這樣的:import pypyodbcimport pandasdef main():    server_name = "SERVER_NAME"    database = "TEST_DATABASE"    connection = pypyodbc.connect(        "Driver={SQL Server};"        "Server=" + server_name + ";"        "Database=" + database + ";"        "Trusted_Connection=yes;"        )    batch_id_list = [100,200,700]    for batch_id in batch_id_list:            print ("--------------------------------------------")            print ("".join(["reading batch_id:", str(batch_id)]))            file_name = "".join(["EXPORT_", str(batch_id), ".xlsx"])            the_sql = """            SELECT * FROM            MY_BIG_TABLE            WHERE BATCH_ID = ?"""            data = pandas.read_sql(the_sql, connection, params=[batch_id])            print ("".join(["writing batch_id:", str(batch_id)]))            data.to_excel("".join(["c:/temp/", file_name]))if __name__ == "__main__":    main()我得到了一小堆 Excel 文件。每個文件BATCH_ID都加載了所有這些結(jié)果。效果很好。我需要做的是讓其中一列成為 Excel 下拉菜單,如下所示:我當(dāng)然可以進(jìn)入 Excel 并為每個文件制作它,但我相信您可以看出這只是示例數(shù)據(jù)。我將制作數(shù)千個 Excel 文件。如何使用我在 Python 中擁有的內(nèi)容使其中一列成為下拉菜單,就像我在圖片中所擁有的那樣?是否有某種模板選項我可以利用,我對任何事情都持開放態(tài)度。我可以控制 SQL 數(shù)據(jù),所以我可以添加值,如果這有助于使它更容易。提前致謝!
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗 獲得超6個贊

我無法Pandas在下拉列表中添加,但我能夠讀回文件,更新它,然后像這樣寫回:


from openpyxl.worksheet.datavalidation import DataValidation

from openpyxl import load_workbook


def add_drop_down(file_path, file_name, row_total):

    print("adding drop down")

    wb = load_workbook("".join([file_path, file_name]))

    ws = wb['Sheet1']

    ws['S2'] = 'Yes'

    ws['S3'] = 'No'

    ws['S4'] = 'Maybe'

    ws['S5'] = 'OK'

    ws['S6'] = 'Not OK'

    ws['S7'] = 'Check'


    ws['T2'] = 'What1'

    ws['T3'] = 'What2'

    ws['T4'] = 'What3'


    current_row = 2

    while current_row < row_total + 2:

        data_val_results = DataValidation(type="list",formula1='=S2:S7')

        data_val_status = DataValidation(type="list",formula1='=T2:T4')


        ws.add_data_validation(data_val_results)

        ws.add_data_validation(data_val_status)


        row_results = "".join(["O", str(current_row)])

        row_status = "".join(["P", str(current_row)])


        data_val_results.add(ws[row_results])

        data_val_status.add(ws[row_status])


        current_row += 1

    wb.save("".join([file_path, file_name]))

http://img1.sycdn.imooc.com//61c1a0820001d1fe05080315.jpg

可能有一種更聰明的方法來做到這一點,但對于一次性出口和運輸,這很好用!在本例中,下拉菜單一直向下延伸到指定的行號。我還在這個例子中放置了兩個不同的下拉菜單。感謝您為我指出正確的方向!


查看完整回答
反對 回復(fù) 2021-12-21
  • 1 回答
  • 0 關(guān)注
  • 326 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號