1. 程式人生 > >【集控總結】匯出EXCEL表格供使用者下載

【集控總結】匯出EXCEL表格供使用者下載

import xlsxwriter

workbook = xlsxwriter.Workbook(report_path)     #建立工作簿
worksheet = workbook.add_worksheet()            #建立工作表

# 標題
headings = ["地市局", '地點', '電壓等級(KV)', '功能位置', '裝置名稱', '識別型別', '識別時間',         
            '識別結果', '告警等級', '告警圖片', '上次識別時間', '上次識別結果','上次識別等級', 
             '上次識別圖片']
# 標題樣式
title = workbook.add_format({'bold': 1, 'align': 'center'})
# 居中
center = workbook.add_format({'align': 'center'})
# 時間的樣式
center_time = workbook.add_format({'align': 'center', 'num_format': 'yyyy-mm-dd HH-MM-SS'})

# 從資料庫查到的樣式按格式寫入。
for group in group_tuple:
        for i, k in enumerate(group):
            # 內容表格的行高
            worksheet.set_row(i + 1, 238)
            if i in (6, 10):
                # 時間格式到列寬(用於寫時間格式的樣式)
                worksheet.set_column(i, i, 20)
                worksheet.write_datetime(row, i, k, center_time)
            elif i in (8, 12):
                # 告警內容的樣式
                k = constants.transform_level(k)
                worksheet.set_column(i, i, 12)
                worksheet.write(row, i, k, center)
            elif i in (9, 13):
                # 插入圖片及調整圖片大小(可以用opencv調整圖片大小)
                worksheet.set_column(i, i, 83)
                k = "templates/" + k
                # 圖片按比例縮放
                worksheet.insert_image(row, i, k, {'x_scale': 0.23, 'y_scale': 0.22})
            else:
                worksheet.set_column(i, i, 12)
                worksheet.write(row, i, k, center)
        row += 1
workbook.close() # 關閉工作簿