python 使用openpyxl模块写Excel文件

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值