标签:direct esc shrink 默认 fill apple table 蓝色 cape
简介:
将数据写入Microsoft Excel中,可使用xlwt,其官网:https://pypi.org/project/xlwt/
安装命令:
pip/pip3 install xlwt
简单的应用如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- import xlwt # 添加设置默认编码,避免:UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters ... import sys reload(sys) sys.setdefaultencoding(‘utf-8‘) # 样式相关 def CreateStyle(rowx, colx, value): # 初始化样式 style = xlwt.XFStyle() font = xlwt.Font() # 设置字体 alignment = xlwt.Alignment() # 设置排列格式 borders = xlwt.Borders() # 设置边框 pattern = xlwt.Pattern() # 设置背景颜色 if rowx == 0: font.name = u‘华文彩云‘ elif rowx == 1: if colx%2 == 0: font.bold = True else: font.italic = True elif rowx == 2: pattern.pattern_fore_colour = colx pattern.pattern = xlwt.Pattern.SOLID_PATTERN elif rowx == 3: alignment.horz = xlwt.Alignment.HORZ_CENTER # 水平居中 alignment.vert = xlwt.Alignment.VERT_CENTER # 垂直居中 elif rowx == 4: borders.left = colx borders.top = colx borders.bottom = colx if colx%2 == 0: borders.right = xlwt.Borders.THICK else: borders.right = xlwt.Borders.THIN # 定义格式 style.font = font style.borders = borders style.alignment = alignment style.pattern = pattern return style def CreateNewExcel(): # 创建新的excel newbook = xlwt.Workbook(encoding=‘utf-8‘) # 创建新的Sheet newSheet = newbook.add_sheet(‘NewSheet‘) # 写入内容 for rowx in range(0,10): for colx in range(0,10): r = rowx # 行位置 c = colx # 列位置 label = str(colx) # 内容 style = CreateStyle(r, c, label) # 样式 newSheet.write(r, c, label, style) #保存excel,保存格式以.xls为准,若保存.xlsx的话,打开文件会报错 newbook.save(‘NewExcel.xls‘) if __name__ == ‘__main__‘: CreateNewExcel()
加粗部分为主体代码,其效果如下:
对于写入单元格的样式主要有如下几种:
样式 | 介绍 |
font | 对字体进行操作,比如字体的类型,颜色,大小,是否为加粗等 |
alignment | 对齐方式,比如水平居中,垂直居中等 |
borders | 边框,是否添加实线或虚线等 |
pattern | 背景颜色相关 |
protection | 保护模式相关??? |
可参考:xlwt/Formatting.py
接下来我们一一说明下,为了节省篇幅仅粘贴主体代码:
font
# 样式相关 def CreateFontStyle(rowx, colx, value): # 初始化样式 style = xlwt.XFStyle() # 设置字体 font = xlwt.Font() font.name = ‘Airal‘ # 字体类型,类型参考Excel字体,若为汉字,注意添加u格式 font.bold = True # 是否加粗 font.italic = True # 是否为斜体 font.struck_out = True # 是否添加删除线 font.height = 0x00C8 # 文字高度 font.outline = False # font.shadow = False # font.colour_index = 0x7FF # 文字颜色,可参考下方颜色编码 font._weight = 0x0190 # # 下划线相关,主要为:无,单下划线,双下划线 # 类型: UNDERLINE_NONE UNDERLINE_SINGLE UNDERLINE_SINGLE_ACC UNDERLINE_DOUBLE UNDERLINE_DOUBLE_ACC font.underline = xlwt.Font.UNDERLINE_SINGLE # 类型有:ESCAPEMENT_NONE, ESCAPEMENT_SUPERSCRIPT, ESCAPEMENT_SUBSCRIPT font.escapement = xlwt.Font.ESCAPEMENT_NONE # 类型有:FAMILY_NONE, FAMILY_ROMAN, FAMILY_SWISS, FAMILY_MODERN, FAMILY_SCRIPT, FAMILY_DECORATIVE font.family = xlwt.Font.FAMILY_NONE # 类型有:CHARSET_ANSI_LATIN, CHARSET_SYS_DEFAULT, CHARSET_SYMBOL, CHARSET_APPLE_ROMAN, CHARSET_ANSI_JAP_SHIFT_JIS, # CHARSET_ANSI_KOR_HANGUL, CHARSET_ANSI_KOR_JOHAB, CHARSET_ANSI_CHINESE_GBK, CHARSET_ANSI_CHINESE_BIG5, # CHARSET_ANSI_GREEK, CHARSET_ANSI_TURKISH, CHARSET_ANSI_VIETNAMESE, CHARSET_ANSI_HEBREW, CHARSET_ANSI_ARABIC, # CHARSET_ANSI_BALTIC, CHARSET_ANSI_CYRILLIC, CHARSET_ANSI_THAI, CHARSET_ANSI_LATIN_II, CHARSET_OEM_LATIN_I font.charset = xlwt.Font.CHARSET_SYS_DEFAULT # 定义格式 style.font = font return style
alignment
def CreateAlignmentStyle(rowx, colx, value): # 初始化样式 style = xlwt.XFStyle() # 设置排列样式 alignment = xlwt.Alignment() alignment.inde = 0 # alignment.merg = 0 # # 水平相关 # 类型: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, # HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED alignment.horz = xlwt.Alignment.HORZ_CENTER # 垂直相关 # 类型:VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED alignment.vert = xlwt.Alignment.VERT_CENTER # 类型: DIRECTION_GENERAL, DIRECTION_LR, DIRECTION_RL alignment.dire = xlwt.Alignment.DIRECTION_GENERAL # 类型: ORIENTATION_NOT_ROTATED, ORIENTATION_STACKED, ORIENTATION_90_CC, ORIENTATION_90_CW alignment.orie = xlwt.Alignment.ORIENTATION_NOT_ROTATED # 类型: ROTATION_0_ANGLE, ROTATION_STACKED alignment.rota = xlwt.Alignment.ROTATION_0_ANGLE # 类型: WRAP_AT_RIGHT, NOT_WRAP_AT_RIGHT alignment.wrap = xlwt.Alignment.NOT_WRAP_AT_RIGHT # 类型: SHRINK_TO_FIT, NOT_SHRINK_TO_FIT alignment.shri = xlwt.Alignment.NOT_SHRINK_TO_FIT style.alignment = alignment return style
borders
def CreateBorderStype(rowx, colx, value): # 初始化样式 style = xlwt.XFStyle() # 设置边框 borders = xlwt.Borders() # 样式相关 # 类型: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR borders.left = xlwt.Borders.NO_LINE # borders.right = xlwt.Borders.THIN # borders.top = xlwt.Borders.MEDIUM # borders.bottom = xlwt.Borders.DASHED # borders.diag = xlwt.Borders.THICK # # 颜色相关,可参考末尾的颜色相关 borders.left_colour = 0x40 borders.right_colour = 0x40 borders.top_colour = 0x40 borders.bottom_colour = 0x40 borders.diag_colour = 0x40 # 类型: NEED_DIAG1, NEED_DIAG2, NO_NEED_DIAG1, NO_NEED_DIAG2 borders.need_diag1 = xlwt.Borders.NO_NEED_DIAG1 # borders.need_diag2 = xlwt.Borders.NO_NEED_DIAG2 # style.borders = borders return style
pattern
def CreatePatternStype(rowx, colx, value): # 初始化样式 style = xlwt.XFStyle() # 设置边框 pattern = xlwt.Pattern() # 模式相关,类型: NO_PATTERN, SOLID_PATTERN pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = 1 # pattern.pattern_back_colour = 2 # style.pattern = pattern return style
protection
def CreatePatternStype(rowx, colx, value): # 初始化样式 style = xlwt.XFStyle() # 设置边框 protection = xlwt.Protection() protection.cell_locked = 1 protection.formula_hidden = 0 style.protection = protection return style
以上,关于颜色的设定,可参考:xlwt/Style.py,总结了一些常用颜色:
红色 0x0A 粉红色 0x0E 深红色 0x10 黑色 0x08 白色 0x09 紫罗兰色 0x14
蓝色 0x0C 蓝绿色 0x36 深蓝绿 0x12 冰蓝色 0x1F 浅蓝色 0x30 深蓝色 0x12
鲜绿色 0x0B 青绿色 0x0F 绿色 0x11 深绿色 0x3A 浅绿色 0x2A 橄榄绿 0x3B
浅黄色 0x2B 深黄色 0x13 黄色 0x0D 青色 0x15 石灰色 0x32 珊瑚色 0x1D
灰色25 0x16 灰色40 0x37 灰色50 0x17 灰色80 0x3F 棕色 0x3C 深紫色 0x1C
天空蓝 0x28 棕褐色 0x2F 金色 0x33 橙色 0x35 浅橙色 0x34 海洋蓝 0x1E
玫瑰色 0x2D
标签:direct esc shrink 默认 fill apple table 蓝色 cape
原文地址:https://www.cnblogs.com/SkyflyBird/p/11822007.html