Python調(diào)用接口合并Excel表代碼實(shí)例
在工作中經(jīng)常遇到需要打開許多個(gè)excel表格,然后合并的需求,合并的同時(shí)要求格式必須原汁原味的保留。利用VBA代碼可以比較輕松的解決,現(xiàn)在我們來(lái)看Python中如何實(shí)現(xiàn)。
上代碼:
from openpyxl import Workbook from win32com.client import Dispatch import os import datetime def copy_excel_file(source_file_list, destination_file): run_app = Dispatch('Excel.Application') run_app.Visible = False # 改為True可以看到excel的打開窗口 for file in source_file_list: source_workbook = run_app.Workbooks.Open(Filename=file) destination_workbook = run_app.Workbooks.Open(Filename=destination_file) source_workbook.Worksheets(1).Copy(Before=destination_workbook.Worksheets(1)) destination_workbook.Close(SaveChanges=True) run_app.Quit() class ParameterGenerator: def __init__(self): # self.directory_path = directory_path self.file_lists = [] def creat_xlsx(self, directory_path): obj = Workbook() if not os.path.exists(directory_path + os.sep + 'joined'): os.mkdir(directory_path + os.sep + 'joined') date = str(datetime.datetime.today())[0:10] obj.save(directory_path + os.sep + 'joined' + os.sep + 'joined {}.xlsx'.format(date)) def get_file_list(self, directory_path): entry_lists = os.scandir(directory_path) for entry_list in entry_lists: if entry_list.is_file(): if '~$' not in entry_list.path: self.file_lists.append(entry_list.path) return self.file_lists def run(self, directory_path): file_lists = self.get_file_list(directory_path) self.creat_xlsx(directory_path) destination_file = str(self.get_file_list(directory_path + os.sep + 'joined')[-1]) file_lists.pop(-1) return file_lists, destination_file if __name__ == "__main__": directory_path = r'D:\Excel目錄' param = ParameterGenerator() source_file_list, destination_file = param.run(directory_path) copy_excel_file(source_file_list, destination_file)
輸出是文件夾下新建一個(gè)'joined‘的文件夾,里面有一個(gè)合并后的文件'joined xxxx-xx-xx.xlsx',如下:
目前發(fā)現(xiàn)有兩個(gè)需要注意的問題:
1. 需要合并的文件中不能有隱藏的表格,否則,會(huì)跳過(guò)該文件;
2. 文件名中不可以字符意外的標(biāo)記,比如括號(hào)之類的。
最后,調(diào)用接口的速度有點(diǎn)慢,以后有機(jī)會(huì)還是看openpyxl是否可以實(shí)現(xiàn)一下,含格式的合并。xlwings是類似的實(shí)現(xiàn),估計(jì)速度也差不多的慢。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 利用Python pandas對(duì)Excel進(jìn)行合并的方法示例
- python合并多個(gè)excel文件的示例
- python不到50行代碼完成了多張excel合并的實(shí)現(xiàn)示例
- 使用 Python 合并多個(gè)格式一致的 Excel 文件(推薦)
- Python pandas實(shí)現(xiàn)excel工作表合并功能詳解
- python操作openpyxl導(dǎo)出Excel 設(shè)置單元格格式及合并處理代碼實(shí)例
- 使用python將多個(gè)excel文件合并到同一個(gè)文件的方法
- python 實(shí)現(xiàn)讀取一個(gè)excel多個(gè)sheet表并合并的方法
- Python批量合并有合并單元格的Excel文件詳解
- python之DataFrame實(shí)現(xiàn)excel合并單元格
- python excel多行合并的方法
相關(guān)文章
Python+Tkinter實(shí)現(xiàn)RGB數(shù)值轉(zhuǎn)換為16進(jìn)制碼
這篇文章主要為大家詳細(xì)介紹了Python如何利用Tkinter編寫一個(gè)RGB數(shù)值轉(zhuǎn)換為16進(jìn)制碼的小工具,文中的示例代講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01Python3.5內(nèi)置模塊之random模塊用法實(shí)例分析
這篇文章主要介紹了Python3.5內(nèi)置模塊之random模塊用法,結(jié)合實(shí)例形式分析了Python3.5 random模塊生成隨機(jī)數(shù)與隨機(jī)字符串相關(guān)操作技巧,需要的朋友可以參考下2019-04-04python爬蟲 2019中國(guó)好聲音評(píng)論爬取過(guò)程解析
這篇文章主要介紹了python爬蟲 2019中國(guó)好聲音評(píng)論爬取過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08