py讀寫修改Excel之xlrd&xlwt&xlutils

專注的阿熊發表於2021-03-12

from datetime import datetime

import xlwt

font0 = xlwt.Font()

# font0.name = 'Times New Roman'  # 適用於字母或數字

font0.name = ' 宋體 '    # 適用於中文,適配字型或者不指定字型才能體現出指定的顏色

# font0.colour_index = 1    # 白色

# font0.colour_index = 2    # 紅色

# font0.colour_index = 3    # 綠色

# font0.colour_index = 4    # 藍色

# font0.colour_index = 5    # 黃色

# font0.colour_index = 6    # 紫色

# font0.colour_index = 7    # 青色

# font0.colour_index = 8    # 黑色,比預設加黑,不加粗

font0.colour_index = 4    # 藍色

font0.bold = True

style0 = xlwt.XFStyle()

style0.font = font0

# 建立樣式物件:日期格式

style1 = xlwt.XFStyle()

style1.num_format_str = 'YYYY-MM-DD'

# 建立樣式物件:字型居中對齊

style2 = xlwt.XFStyle()

al = xlwt.Alignment()

al.horz = 0x02  # 設定水平居中

al.vert = 0x01  # 設定垂直居中

style2.alignment = al

# 建立樣式物件,設定日期格式與字型居中對齊

style3 = xlwt.XFStyle()

style3.num_format_str = 'YYYY-MM-DD'

style3.alignment = al

# 建立樣式物件,外匯跟單gendan5.com設定字型居中 且 設定字型顏色

style4 = xlwt.XFStyle()

style4.alignment = al

style4.font = font0

now_time = datetime.now().strftime('%Y-%m-%d %X')

date_time = datetime.now().strftime('%Y-%m-%d')

# 建立表格

wb = xlwt.Workbook()

# 新建一個名為 Score Sheet 的表單頁

score_sheet = wb.add_sheet('Score Sheet')

# 新建一個名為 Record Test Sheet 的表單頁

record_test_sheet = wb.add_sheet('Record Test Sheet')

# 1 、寫入 Score Sheet 表單

# 設定 表頭, 第一個引數是行,第二個引數是列

score_sheet.write(0, 0, ' 時間 ', style2)

score_sheet.write(0, 1, ' 班級 ', style2)

score_sheet.write(0, 2, ' 姓名 ', style2)

score_sheet.write(0, 3, ' 語文 ', style2)

score_sheet.write(0, 4, ' 數學 ', style2)

score_sheet.write(0, 5, ' 英語 ', style2)

score_sheet.write(0, 6, ' 理綜 ', style2)

score_sheet.write(0, 7, ' 總分 ', style4)

# 按照位置新增資料

score_sheet.write(1, 0, datetime.now(), style3)

score_sheet.write(1, 1, ' 高三三班 ', style2)

score_sheet.write(1, 2, ' 桑巖 ', style2)

score_sheet.write(1, 3, 132, style2)

score_sheet.write(1, 4, 150, style2)

score_sheet.write(1, 5, 140, style2)

score_sheet.write(1, 6, 290, style2)

score_sheet.write(1, 7, xlwt.Formula("D2+E2+F2+G2"), style2)

score_sheet.write(2, 0, datetime.now(), style3)

score_sheet.write(2, 1, ' 高三三班 ', style2)

score_sheet.write(2, 2, ' 項天騏 ', style2)

score_sheet.write(2, 3, 140, style2)

score_sheet.write(2, 4, 150, style2)

score_sheet.write(2, 5, 132, style2)

score_sheet.write(2, 6, 280, style2)

score_sheet.write(2, 7, xlwt.Formula("D3+E3+F3+G3"), style2)

score_sheet.write(3, 0, datetime.now(), style3)

score_sheet.write(3, 1, ' 高三三班 ', style2)

score_sheet.write(3, 2, ' 向淮南 ', style2)

score_sheet.write(3, 3, 135, style2)

score_sheet.write(3, 4, 150, style2)

score_sheet.write(3, 5, 145, style2)

score_sheet.write(3, 6, 270, style2)

score_sheet.write(3, 7, xlwt.Formula("D4+E4+F4+G4"), style2)

# 2 、寫入 Record Test Sheet 表單

record_test_sheet.write(0, 0, ' 時間 ')

record_test_sheet.write(0, 1, ' 學科 ', style1)

record_test_sheet.write(0, 2, ' 成績 ', style1)

record_test_sheet.write(1, 0, datetime.now(), style1)

record_test_sheet.write(1, 1, ' 語文 ', style2)

record_test_sheet.write(1, 2, 80)

record_test_sheet.write(2, 0, datetime.now(), style3)

record_test_sheet.write(2, 1, ' 數學 ', style2)

record_test_sheet.write(2, 2, 99)

record_test_sheet.write(3, 0, now_time, style2)

record_test_sheet.write(3, 1, ' 英語 ', style2)

record_test_sheet.write(3, 2, 98)

# 儲存表格,這裡應該是覆蓋寫,注意每次都是覆蓋所有表單內容,建議每次生成的表單加上時間版本區分

# wb.save('example.xls')

wb.save('example-{0}.xls'.format(date_time))


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2762612/,如需轉載,請註明出處,否則將追究法律責任。

相關文章