如題,貼代碼:
1 ''' 2 #python將某文件夾下的文件名存儲到excel中 3 ''' 4 5 #導入所需模塊 6 import os 7 import xlwt 8 9 #定義要處理的文件路徑(文件夾) 10 file_dir = "D:/" 11 12 #將文件名列出並存儲在allfilenames里面 13 allfilenames = os.listdir(file_dir) 14 #打印看是否符合預期 15 print(allfilenames) 16 17 #創建工作簿 18 workbook = xlwt.Workbook() 19 #新建工作表,並且命名為fileNames 20 worksheet = workbook.add_sheet('fileNames') 21 22 #開始往表格里寫文件名 23 n = 0 #定義起始行數 24 for i in allfilenames: 25 worksheet.write(n, 0, i) #向單元格里內寫入i 26 n += 1 #寫完一個i寫完一行后n自加1 27 28 #保存工作簿 29 workbook.save('D:/Python代碼素材/excel自動化辦公/2020-11-05-filenames-excel.xls')
最終效果:
補充,利用xlwt帶格式寫入,模板如下:
代碼如下:
1 ''' 2 #python利用模板格式對某文件夾下的文件名寫入excel 3 ''' 4 #導入所需模塊 5 import os 6 import xlwt 7 import xlrd 8 from xlutils.copy import copy 9 10 #定義要處理的文件夾 11 file_dir = "D:/" 12 #列出文件名並保存到allfilenames 13 allfilenames = os.listdir(file_dir) 14 #打印是否符合預期 15 print(allfilenames) 16 17 #讀取模板 18 tem_excel = xlrd.open_workbook('D:/Python代碼素材/excel自動化辦公/文件名模板.xls',formatting_info=True) 19 tem_sheet = tem_excel.sheet_by_index(0) 20 21 #復制模板 22 new_excel = copy(tem_excel) 23 new_sheet = new_excel.get_sheet(0) 24 25 #定義格式 26 style = xlwt.XFStyle() 27 #定義字體 28 font = xlwt.Font() 29 font.name = "微軟雅黑" 30 font.bold = True 31 font.height = 360 32 #將字體樣式寫入到總樣式 33 style.font = font 34 35 #定義邊框 36 borders = xlwt.Borders() 37 borders.top = xlwt.Borders.THIN 38 borders.right = xlwt.Borders.THIN 39 borders.bottom = xlwt.Borders.THIN 40 borders.left = xlwt.Borders.THIN 41 #將邊框樣式寫入到總樣式 42 style.borders = borders 43 44 #定義對齊樣式 45 alignment = xlwt.Alignment() 46 alignment.horz = xlwt.Alignment.HORZ_CENTER 47 alignment.vert = xlwt.Alignment.VERT_CENTER 48 #將對齊樣式寫入到總樣式 49 style.alignment = alignment 50 51 #定義起始行數,模板里的要求是從第二行寫入 52 n = 1 53 #開始循環 54 for i in allfilenames: 55 new_sheet.write(n, 0, i, style) #在指定行和第一列寫入i並附帶我們規定的樣式 56 n += 1 #每次循環完后行數n自增1 57 58 #保存工作簿 59 new_excel.save("D:/Python代碼素材/excel自動化辦公/2020-11-05-tem-xlrd-excel.xls")
效果:
第三,利用openpyxl帶格式寫入,模板還是上面的模板。
1 import os 2 import openpyxl 3 4 #定義要處理的文件夾 5 file_dir = "D:/" 6 #列出文件名 7 allfilenames = os.listdir(file_dir) 8 print(allfilenames) 9 10 #導入模板 11 tem_excel = openpyxl.load_workbook("D:/Python代碼素材/excel自動化辦公/文件名模板_openpyxl.xlsx") 12 tem_sheet = tem_excel['Sheet1'] 13 14 #用個笨辦法,還沒有想到好辦法,先確定有多少文件 15 print(len(allfilenames)) #22 16 #開始寫入 17 18 tem_sheet['A2'] = allfilenames[0] 19 tem_sheet['A3'] = allfilenames[1] 20 tem_sheet['A4'] = allfilenames[2] 21 tem_sheet['A5'] = allfilenames[3] 22 tem_sheet['A6'] = allfilenames[4] 23 tem_sheet['A7'] = allfilenames[5] 24 tem_sheet['A8'] = allfilenames[6] 25 tem_sheet['A9'] = allfilenames[7] 26 tem_sheet['A10'] = allfilenames[8] 27 tem_sheet['A11'] = allfilenames[9] 28 tem_sheet['A12'] = allfilenames[10] 29 tem_sheet['A13'] = allfilenames[11] 30 tem_sheet['A14'] = allfilenames[12] 31 tem_sheet['A15'] = allfilenames[13] 32 tem_sheet['A16'] = allfilenames[14] 33 tem_sheet['A17'] = allfilenames[15] 34 tem_sheet['A18'] = allfilenames[16] 35 tem_sheet['A19'] = allfilenames[17] 36 tem_sheet['A20'] = allfilenames[18] 37 tem_sheet['A21'] = allfilenames[19] 38 tem_sheet['A22'] = allfilenames[20] 39 tem_sheet['A23'] = allfilenames[21] 40 41 #另存為 42 tem_excel.save("D:/Python代碼素材/excel自動化辦公/2020-11-05-openpyxl-filename.xlsx")
最后一段代碼求改進方法。