Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import openpyxl
- from openpyxl.worksheet.table import Table, TableStyleInfo
- from openpyxl.styles import Font, Alignment
- # Получаем путь к директории, где находится файл скрипта
- PTH = os.path.abspath(os.path.dirname(__file__))
- # Создаём список файлов с заменой адреса корневой папки на C:\
- def get_files_from_folder(folder_path):
- return [(os.path.join(root, file).replace(folder_path, 'C:'), os.path.splitext(file)[0], os.path.splitext(file)[1].upper(), os.path.getsize(os.path.join(root, file)))
- for root, dirs, files in os.walk(folder_path) for file in files]
- files = get_files_from_folder(os.path.join(PTH, "C_"))
- # Создаём новую книгу Excel и лист в ней
- WB = openpyxl.Workbook()
- WS = WB.active
- WS.title = "Файлы"
- # Задаём ширину столбцов таблицы
- WS.column_dimensions['A'].width = 25
- WS.column_dimensions['B'].width = 50
- WS.column_dimensions['C'].width = 10
- WS.column_dimensions['D'].width = 10
- WS.column_dimensions['E'].width = 10
- # Задаём заголовки таблицы
- WS.cell(2, 1, "Путь")
- WS.cell(2, 2, "Имя")
- WS.cell(2, 3, "Формат")
- WS.cell(2, 4, "Байт")
- WS.cell(2, 5, "Статус")
- # Заполняем таблицу данными (это меняет шрифт!)
- for row, file_info in enumerate(files, start=3):
- WS.cell(row, 1, file_info[0])
- WS.cell(row, 2, file_info[1])
- WS.cell(row, 3, file_info[2] if file_info[2] != "" else "–")
- WS.cell(row, 4, file_info[3]).number_format = '#,##0'
- WS.cell(row, 5, "OK")
- # Оформляем таблицу, как смарт-таблицу (это меняет шрифт!)
- table = Table(displayName="Список", ref="A2:E"+str(len(files)+2))
- style = TableStyleInfo(name="TableStyleMedium12", showRowStripes=0)
- table.tableStyleInfo = style
- WS.add_table(table)
- # Задаём шрифт по умолчанию, выравнивание по вертикали по центру
- def_font = Font(name="Arial Narrow", size=10)
- def_align = Alignment(vertical='center', wrap_text=0)
- for row in WS.rows:
- for cell in row:
- cell.font = def_font
- cell.alignment = def_align
- # Меняем цвет шрифта в столбце 1, закрепляем строку №2, отключаем сетку листа
- for row in WS.rows:
- row[0].font = Font(name="Arial Narrow", size=10, color='FF808080')
- WS.freeze_panes = 'A3'
- WS.sheet_view.showGridLines = 0
- # Сохраняем книгу Excel
- WB.save(os.path.join(PTH, "Files.xlsx"))
Advertisement
Add Comment
Please, Sign In to add comment