python xlwt 写入Excel,,简介:将数据写入Mi


简介:

将数据写入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 sysreload(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 

python xlwt 写入Excel

评论关闭