Excel'de bir klasörün içerisinde bulunan farklı excel dosyalarını tek bir sayfaya kopyalamam gerekiyordu. Normalde Excel'in bu iş için görseldeki gibi bir aracı var. Ama sadece dosyaların içerisindeki çalışma sayfalarının isimleri aynı ise çalışıyor.
Bende çalışma sayfalarının adını toplu bir şekilde değiştirmenin yolunu aradım ve aşağıdaki python scriptini buldum. Hem not olarak dursun hem de lazım olan olursa kolay bulsun.
#excel
import openpyxl
import os
for x in os.listdir():
if x.endswith(".xlsx"): #eğer dosya uzantısı xlsx ise
ss=openpyxl.load_workbook(x) #ss değişkenine x dosyasını yükle
ws=ss.worksheets[0] #ws değişkenine ss deki ilk sayfayı yükle
ss_sheet = ss[ws.title] #ss_sheet değişkenine ss deki ws.title sayfasını yükle
ss_sheet.title = 'Fruit' #ss_sheet değişkeninin ismini Fruit yap
ss.save(x) #ss değişkenini x dosyasına kaydet
Excel de yapabiliyordur (VBA), kurcalamak lazım.
Benimde ilk tercihim o olurdu ama kapalı olan excel dosyalarına erişebilir mi emin olamadım.
Hocam o da varmış 😀 Hem daha pratik. Python ile venv oluşturmaya gerek yok
Sub OPEN_ALL_FILES_IN_FOLDER_RUN_MACRO()
Dim Path As String
'path to your folder with excel files
Path = "C:\Users\LENOVO\Desktop\Fiyat\r\"
Dim fileName As String
' ANY EXCEL FILE
fileName = Dir(Path & "*.xls*")
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Do While fileName ""
Workbooks.Open Path & fileName
' *****************************************************add code to run on each workbook in the folder********************************************
ActiveSheet.Name = "Balance Sheet"
' ****************************************************end code to run on each workbook in the folder*********************************************
Workbooks(fileName).Close True
fileName = Dir()
Loop
Application.DisplayStatusBar = True
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
@okanaytimur: Vardır, sonuçta yapmak istediğiniz şey ortak dosya türleri için istenebilecek bir iş.... Kolay gelsin.