import openpyxl
import time
from openpyxl.styles import Font, PatternFill
class excelWriter(object):
def __init__(self, file_path, title_row) -> None:
self.file_path = file_path
self.title_row = title_row
self.workbook = openpyxl.Workbook()
self.sheet = self.workbook.active
def write(self, sheet_name, value):
index = len(value)
self.sheet.title = sheet_name
# set color, font
pattern = PatternFill(fill_type='solid',fgColor='FFC125')
font = Font(name='微软雅黑', size=16, color='FF000000', bold=True, italic=False)
# sheet.row_dimensions[1].fill = pattern # 有内容的单元格无法填充颜色,why?
# write title in first row.
for i in range(0, len(self.title_row)):
self.sheet.cell(row=1, column=i+1, value=self.title_row[i])
self.sheet.cell(row=1, column=i+1).fill = pattern
self.sheet.cell(row=1, column=i+1).font = font
for i in range(0, index):
for j in range(0, len(value[i])):
self.sheet.cell(row=i+2, column=j+1, value=str(value[i][j]))
# 设置列宽 - 待封装一个方法
self.sheet.column_dimensions['A'].width = 36
self.sheet.column_dimensions['B'].width = 25
self.sheet.column_dimensions['C'].width = 25
self.workbook.save(file_path)
print('data write successful!')
if __name__ == '__main__':
first_row = ['房间名称', '房间价格', '备注']
t = time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())
file_path = f'room_info_{t}.xlsx'
value = [['画境·精致大床房', ['240', '271'], ['240', '271']], ['书韵·精致景观大床房', ['257']], ['春暖·星空投影大床房', ['265', '387'], ['265', '387']], ['花开·智能床主题露台房', ['269', '391'], ['269', '391']], ['棋妙·商务度假双床房', ['274', '311'], ['274', '311']], ['涵诺·开心亲子房', ['368']], ['荷塘·露台精致大床房', ['525']], ['青瓷·精品青花瓷主题露台房', ['567', '670'], ['567', '670']], ['琴鸣·豪华庭院家庭房', ['660']], ['七室一厅套房', ['2800']]]
excelWriter(file_path,first_row).write('RoomInfo', value)
python 使用openpyxl模块写Excel文件
最新推荐文章于 2024-03-18 23:24:40 发布