簡體   English   中英

如何使用win32com打開多個Excel文件?

[英]How to open multiple excel files with win32com?

有沒有一種方法可以使用os.walkglob簡化這種情況?

from win32com.client import Dispatch

inputwb1 = "D:/apera/Workspace/Sounding/sounding001.xlsx"
inputwb2 = "D:/apera/Workspace/Sounding/sounding002.xlsx"

Sheet = 'OUTPUT'
excel = Dispatch("Excel.Application")

source = excel.Workbooks.Open(inputwb1)
source.Worksheets(Sheet).Range('F1:H500').Copy()
source.Worksheets(Sheet).Range('I1:K500').PasteSpecial(Paste=-4163)

source = excel.Workbooks.Open(inputwb2)
source.Worksheets(Sheet).Range('F1:H500').Copy()
source.Worksheets(Sheet).Range('I1:K500').PasteSpecial(Paste=-4163)

因為如果我要寫幾百個東西,這東西會占用很多空間。

您似乎幾乎回答了自己的問題。 這樣的事情可能會做到:

import glob
from win32com.client import Dispatch

Sheet = 'OUTPUT'
excel = Dispatch("Excel.Application")

for filename in glob.glob("D:/apera/Workspace/Sounding/sounding*.xlsx"):
    source = excel.Workbooks.Open(filename)
    source.Worksheets(Sheet).Range('F1:H500').Copy()
    source.Worksheets(Sheet).Range('I1:K500').PasteSpecial(Paste=-4163)

您可以像這樣打開多個excel文件(示例):

import win32com.client
import os
path = ('D:\\New Folder\\MyExcelFiles\\')
fileslist = os.listdir('D:\\New Folder\\MyExcelFiles\\')
xl = win32com.client.DispatchEx('Excel.Application')
xl.Visible = True

for i in fileslist :
xl.Workbooks.Open(path+i)
if xl.Cells.Find('2014'):
   xl.Cells.Replace('2015')
   xl.Save()
   xl.Workbooks.Close()
else:
   xl.Workbooks.Close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM