成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Python批量處理工作簿和工作表

maxmin / 2447人閱讀

摘要:使用批量處理工作簿和工作表批量新建并保存工作簿批量打開一個(gè)文件夾中的打開工作簿批量重命名一個(gè)工作簿的所有工作表批量重命名多個(gè)工作簿批量重命名多個(gè)工作簿中的同名工作表將一個(gè)工作簿的所有工作表批量復(fù)制到其他工作簿按條件將一

批量新建并保存工作簿

代碼

import xlwings as xw# 啟動(dòng) Excel,但不新建工作簿app = xw.App(visible=True,add_book=False)for i in range(5):	#新建工作簿    workbook = app.books.add()    #保存工作簿    workbook.save(f"test{i}.xlsx")    #將工作簿關(guān)閉    workbook.close()

批量打開一個(gè)文件夾中的打開工作簿

import xlwings as xwimport os# 給出工作簿所在的文件夾路徑path_file = r"E:/python1/python_module"# 列出該文件夾中所有的子文件或子文件夾file_list = os.listdir(path_file)# 啟動(dòng)Excelapp = xw.App(visible=True,add_book=False)for i in file_list:    # 判斷文件是否為 Excel文件    if os.path.splitext(i)[1] ==".xlsx":        #打開        app.books.open(i)

批量重命名一個(gè)工作簿的所有工作表

import xlwings as xw# 啟動(dòng)Excelapp = xw.App(visible=True,add_book=False)# 打開工作簿workbook = app.books.open("table.xlsx")#獲取工作簿的所有工作表worhsheets = workbook.sheetsfor i in range(len(worhsheets)):    # 重命名工作表    worhsheets[i].name = worhsheets[i].name.replace("銷售","")#另存重命名后的工作簿workbook.save("table1.xlsx")#退出Excel程序app.quit()

批量重命名多個(gè)工作簿

不過這是有前提條件的,要重命名的工作簿名必
須是有規(guī)律的,如表1、表2、表3;或者含有相同的關(guān)鍵字。

import xlwings as xwimport os# 給出工作簿所在的文件夾路徑path_file = r"E:/python1/python_module"# 列出該文件夾中所有的子文件或子文件夾file_list = os.listdir(path_file)old_book_name = "銷售表"new_book_name = "分部銷售表"# 啟動(dòng)Excelapp = xw.App(visible=True,add_book=False)for i in file_list:    if i.startswith("~$"):        continue    # 執(zhí)行查找和替換,生成新的工作簿名    new_file = i.replace(old_book_name,new_book_name)    # 構(gòu)造需要重命名工作簿的完整路徑    old_path_filr = os.path.join(path_file,i)    #構(gòu)建重命名后工作簿的完整路徑    new_path_file = os.path.join(path_file,new_file)    # 重命名    os.rename(old_path_filr,new_path_file)

if i.startswith(’~$’):
continue

因?yàn)镋xcel會(huì)在使用過程中生成一些文件名以"~$"開頭的臨時(shí)文件,如果有這些文件就跳過。

批量重命名多個(gè)工作簿中的同名工作表

步驟

  1. 打印出文件夾中所有子文件的名稱
  2. 與文件夾路徑拼接成完整的文件名后,打開
  3. 遍歷文件中的所有工作表,如果名字相同就更改
  4. 保存工作表目錄

代碼:

import xlwings as xwimport os# 給出工作簿所在的文件夾路徑path_file = r"E:/python1/python_module"# 列出該文件夾中所有的子文件或子文件夾file_list = os.listdir(path_file)old_sheet = "sheet1"new_sheet = "員工信息"app = xw.App(visible=True,add_book= False) # 遍歷工作簿for i in path_file:    if i.startswith("~$"):        continue    # 拼接出完整路徑    old_path_file = os.path.join(path_file,i)    # 打開工作簿    workbook = app.books.open(old_path_file)    # 遍歷工作表    for j in workbook.sheets:        if j.name == old_sheet:            j.name = new_sheet    # 保存工作簿    workbook.save()app.quit()

將一個(gè)工作簿的所有工作表批量復(fù)制到其他工作簿

步驟:

  1. 獲取目標(biāo)(復(fù)制到的)文件夾的所有子文件
  2. 打開源文件(被復(fù)制的),并獲取其所有的工作表信息。
  3. 遍歷所有的子文件,如果是Excel文件就打開
  4. 在目標(biāo)工作簿中新增工作表
  5. 將來源工作表的數(shù)據(jù)寫入新增工作表中

代碼

import xlwings as xwimport os# 給出工作簿所在的文件夾路徑path_file = r"E:/python1/python_module"# 列出該文件夾中所有的子文件或子文件夾file_list = os.listdir(path_file)app = xw.App(visible=True,add_book= False)workbook = app.books.open("來源工作簿路徑")worksheet = workbook.sheets # 子文件for i in path_file:    if os.path.splitext(i)[1] ==".xlsx":        # 打開工作簿        workbooks = app.books.open(path_file+"/"+i)        # 遍歷工作表        for j in worksheet:            # 讀取工作表中的信息            contents = j.range("A1").expand("table").value            # 讀取工作表的名稱            name = j.name            # 增加同名的工作表            workbooks.sheets.add(name = name,after = len(workbooks.sheets))            # 寫入數(shù)據(jù)            workbooks.sheets[name].range("A1").value = contents        # 保存工作簿        workbook.save()app.quit()

.expand()xlwings模塊中的函數(shù),用于擴(kuò)展選擇范圍。語法格式如下

expand(mode) 默認(rèn)值是 ‘table’,表示向整個(gè)數(shù)據(jù)表擴(kuò)展。也可以是’down’(下方)或’right’(右方)

按條件將一個(gè)工作表拆分為多個(gè)工作簿

import  osimport xlwings as xwfilr_path = "e://table//產(chǎn)品統(tǒng)計(jì)表.xlsx"sheet_name = "統(tǒng)計(jì)表"app = xw.App(visible = True ,add_book= False)# 打開工作簿workbooh = app.books.open(filr_path)# 獲取指定的工作表worksheet = workbooh.sheets[sheet_name]# 讀取工作表中的所有信息value = worksheet.range("A2").expand("table").value# 創(chuàng)建一個(gè)空字典用于按產(chǎn)品名稱來分類存放數(shù)據(jù)data = dict()#按行遍歷工作表數(shù)據(jù)for i in range(len(value)):    # 獲取當(dāng)前行的第一個(gè)空格中的數(shù)據(jù)    product_name = value[i][1]    # 如果沒有該產(chǎn)品    if product_name not in data:        # 創(chuàng)建一個(gè)與當(dāng)前行名稱對(duì)應(yīng)的空列表        data[product_name] = []    # 將當(dāng)前數(shù)據(jù)追加當(dāng)列表中    data[product_name].append(value[i])for key,value in data.items():    # 新建目標(biāo)工作簿    new_workbook = app.books.add()    #新建工作表    new_sheet = new_workbook.sheets.add(key)    # 將要拆分的工作表的列標(biāo)題復(fù)制到新建的工作表中    new_sheet["A1"].value = worksheet["A1:H1"].value    # 將數(shù)據(jù)復(fù)制    new_sheet["A2"].value = value    new_workbook.save("{}.xlsx".format(key))app.quit()

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/119308.html

相關(guān)文章

  • 想免費(fèi)用谷歌資源訓(xùn)練神經(jīng)網(wǎng)絡(luò)?Colab 詳細(xì)使用教程 —— Jinkey 原創(chuàng)

    摘要:網(wǎng)址庫的安裝和使用自帶了等深度學(xué)習(xí)基礎(chǔ)庫。遍歷目錄列出根目錄的所有文件查詢條件教程詳見可以看到控制臺(tái)打印結(jié)果測(cè)試其中是接下來的教程獲取文件的唯一標(biāo)識(shí)。該示例演示的是對(duì)健康科技設(shè)計(jì)三個(gè)類別的標(biāo)題進(jìn)行分類。 showImg(https://segmentfault.com/img/remote/1460000012731670); 原文鏈接 https://jinkey.ai/post/t...

    XboxYan 評(píng)論0 收藏0
  • MySQL非主從環(huán)境下數(shù)據(jù)一致性校驗(yàn)及修復(fù)程序

    摘要:簡(jiǎn)介項(xiàng)目地址主從環(huán)境下數(shù)據(jù)一致性校驗(yàn)經(jīng)常會(huì)用工具,它的原理及實(shí)施過程之前寫過一篇文章生產(chǎn)環(huán)境使用檢查數(shù)據(jù)一致性。上面的配置文件可以認(rèn)為是用于控制程序的,這個(gè)配置文件是指定要校驗(yàn)的源庫和目標(biāo)庫信息,以及要檢驗(yàn)?zāi)男┍怼? 1. 簡(jiǎn)介 項(xiàng)目地址:https://github.com/seanlook/p... 主從環(huán)境下數(shù)據(jù)一致性校驗(yàn)經(jīng)常會(huì)用 pt-table-checksum 工具,它的原理...

    104828720 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<