Python xlwt 操作 excel 表格基础(三):单元格格式、字体格式、对齐方式、边框及填充等

您所在的位置:网站首页 excel中单元格的格式有哪些 Python xlwt 操作 excel 表格基础(三):单元格格式、字体格式、对齐方式、边框及填充等

Python xlwt 操作 excel 表格基础(三):单元格格式、字体格式、对齐方式、边框及填充等

#Python xlwt 操作 excel 表格基础(三):单元格格式、字体格式、对齐方式、边框及填充等| 来源: 网络整理| 查看: 265

Python xlwt 模块 Excel表格 基础 3:单元格格式、字体格式、对齐方式、边框及填充等 前言:1、数据类型设置2、字体设置3、单元格对齐方式4、单元格边框设置5、填充设置6、单元格保护结尾: 【Python与Office】专栏

前言:

上一篇博客介绍了xlwt 模块设置 Excel 表格文件的 窗口显示样式、默认打印格式等 方法。

本篇博客主要对表格文件的 单元格格式设置 进行介绍,主要包括:

1. 单元格数据类型; 2. 字体设置; 3. 对齐方式; 4. 边框设置; 5. 填充设置; 6. 单元格保护。

1、数据类型设置

这里还是用上一节的方式,先建立两个sheet表,写入数据,然后对Tset sheet表设置自定义的单元格格式,T2 sheet表以默认的单元格格式写入。

# 导入模块 import xlwt work_book = xlwt.Workbook() work_sheet = work_book.add_sheet('Test') w2 = work_book.add_sheet('T2') # 创建数据 z = [[r,c] for r in range(20) for c in range(20)] [l.append(str(i)) for i,l in enumerate(z)]

单元格格式设置方法:

单元格格式设置也有一套固定的流程:

创建单元格样式对象——设置样式(修改样式属性值)——将数据写入单元格时以创建的样式写入

# 建立样式 my_style_1 = xlwt.XFStyle() # 建立单元格数据类型,数值类型,默认为:'General' my_style_1.num_format_str = '0' # 写入数据、Test sheet对象以自定义格式写入,T2 sheet对象以默认格式写入 for info in z: # 写入数据,并对单元格设置格式 work_sheet.write(info[0],info[1],info[2],my_style_1) w2.write(info[0],info[1],info[2]) # 保存文件 work_book.save('Test3.xls')

可设置的数据格式有:

# 单元格数据类型 ####################################################### ''' 'general', '0', '0.00', '#,##0', '#,##0.00', '"$"#,##0_);("$"#,##0)', '"$"#,##0_);[Red]("$"#,##0)', '"$"#,##0.00_);("$"#,##0.00)', '"$"#,##0.00_);[Red]("$"#,##0.00)', '0%', '0.00%', '0.00E+00', '# ?/?', '# ??/??', 'M/D/YY', 'D-MMM-YY', 'D-MMM', 'MMM-YY', 'h:mm AM/PM', 'h:mm:ss AM/PM', 'h:mm', 'h:mm:ss', 'M/D/YY h:mm', '_(#,##0_);(#,##0)', '_(#,##0_);[Red](#,##0)', '_(#,##0.00_);(#,##0.00)', '_(#,##0.00_);[Red](#,##0.00)', '_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)', '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)', '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)', '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)', 'mm:ss', '[h]:mm:ss', 'mm:ss.0', '##0.0E+0', '@' ''' 2、字体设置

先建立一个字体对象:

# 建立字体 font = my_style_1.font

然后对字体名称,字体高度、加粗等方面进行设置:

可设置项(默认设置):

# self.height = 0x00C8 # 200: this is font with height 10 points # self.italic = False # self.struck_out = False # self.outline = False # self.shadow = False # self.colour_index = 0x7FFF # self.bold = False # self._weight = 0x0190 # 0x02BC gives bold font # self.escapement = self.ESCAPEMENT_NONE # self.underline = self.UNDERLINE_NONE # self.family = self.FAMILY_NONE # self.charset = self.CHARSET_SYS_DEFAULT # self.name = 'Arial'

实例:

# 设置字体名称 font.name = 'Times New Roman ' # 设置字体高度 font.height = 400 # 设置斜体 font.italic = True # 设置删除线 font.struck_out = True # 设置轮廓 font.outline = True # 设置阴影 font.shadow = True # 设置字体颜色、蓝色 font.colour_index = 0x0C # 设置加粗 font.bold = True # 设置字体上下标、上标 # font.escapement = 1 # 设置下划线、双层下划线 font.underline = 2 # 设置字符集、GBK font.charset = 0x86

设置效果图:

在这里插入图片描述 获取字体格式信息:

除了可以设置单元格格式外,还可以通过_search_key() 方法来获取单元格样式信息。

font_info = font._search_key() print(font_info) # 打印结果: # (400, True, True, True, True, 12, True, 400, 0, 2, 0, 134, 'Times New Roman ')

字体格式设置说明:

上面的设置将字体颜色用,设置为蓝色:

font.colour_index = 0x0C

字体颜色可选值:

# 颜色索引 ####################################################### """ aqua 0x31 black 0x08 blue 0x0C blue_gray 0x36 bright_green 0x0B brown 0x3C coral 0x1D cyan_ega 0x0F dark_blue 0x12 dark_blue_ega 0x12 dark_green 0x3A dark_green_ega 0x11 dark_purple 0x1C dark_red 0x10 dark_red_ega 0x10 dark_teal 0x38 dark_yellow 0x13 gold 0x33 gray_ega 0x17 gray25 0x16 gray40 0x37 gray50 0x17 gray80 0x3F green 0x11 ice_blue 0x1F indigo 0x3E ivory 0x1A lavender 0x2E light_blue 0x30 light_green 0x2A light_orange 0x34 light_turquoise 0x29 light_yellow 0x2B lime 0x32 magenta_ega 0x0E ocean_blue 0x1E olive_ega 0x13 olive_green 0x3B orange 0x35 pale_blue 0x2C periwinkle 0x18 pink 0x0E plum 0x3D purple_ega 0x14 red 0x0A rose 0x2D sea_green 0x39 silver_ega 0x16 sky_blue 0x28 tan 0x2F teal 0x15 teal_ega 0x15 turquoise 0x0F violet 0x14 white 0x09 yellow 0x0D """

字体上下标设置、下划线设置、字符集设置:

# 字体上标 font.escapement = 1 # 设置下划线、双层下划线 font.underline = 2 # 设置字符集、GBK font.charset = 0x86

解析:

这里单元格默认的字体上下标设置是:

self.escapement = self.ESCAPEMENT_NONE

查下面的索引:ESCAPEMENT_NONE = 0x00 如我们想将单元格设置为上标,上标是:ESCAPEMENT_SUPERSCRIPT ,对应的值为:0x01(16位数字) 及单元格格式设置为:

font.escapement = 0x01 或: font.escapement = 1

下面出现的其他设置都是类似原理,如再次出现就不解释了。

上下标、下划线、字符集索引:

ESCAPEMENT_NONE = 0x00 # 上标 ESCAPEMENT_SUPERSCRIPT = 0x01 # 下标 ESCAPEMENT_SUBSCRIPT = 0x02 # 下划线可选值 UNDERLINE_NONE = 0x00 UNDERLINE_SINGLE = 0x01 UNDERLINE_SINGLE_ACC = 0x21 UNDERLINE_DOUBLE = 0x02 UNDERLINE_DOUBLE_ACC = 0x22 # 字符集可选值 CHARSET_ANSI_LATIN = 0x00 CHARSET_SYS_DEFAULT = 0x01 CHARSET_SYMBOL = 0x02 CHARSET_APPLE_ROMAN = 0x4D CHARSET_ANSI_JAP_SHIFT_JIS = 0x80 CHARSET_ANSI_KOR_HANGUL = 0x81 CHARSET_ANSI_KOR_JOHAB = 0x82 CHARSET_ANSI_CHINESE_GBK = 0x86 CHARSET_ANSI_CHINESE_BIG5 = 0x88 CHARSET_ANSI_GREEK = 0xA1 CHARSET_ANSI_TURKISH = 0xA2 CHARSET_ANSI_VIETNAMESE = 0xA3 CHARSET_ANSI_HEBREW = 0xB1 CHARSET_ANSI_ARABIC = 0xB2 CHARSET_ANSI_BALTIC = 0xBA CHARSET_ANSI_CYRILLIC = 0xCC CHARSET_ANSI_THAI = 0xDE CHARSET_ANSI_LATIN_II = 0xEE CHARSET_OEM_LATIN_I = 0xFF 3、单元格对齐方式

建立对齐方式对象,设置对齐方式属性:

可设置项(默认设置):

# self.horz = self.HORZ_GENERAL # self.vert = self.VERT_BOTTOM # self.dire = self.DIRECTION_GENERAL # self.orie = self.ORIENTATION_NOT_ROTATED # self.rota = self.ROTATION_0_ANGLE # self.wrap = self.NOT_WRAP_AT_RIGHT # self.shri = self.NOT_SHRINK_TO_FIT # self.inde = 0 # self.merg = 0

实例:

# 建立对其方式: alignment = my_style_1.alignment # 水平对齐方式、水平居中 alignment.horz = 2 # 垂直对齐方式、垂直居中 alignment.vert = 1 # 旋转方向,设置旋转方向45 alignment.rota = 45 # 自动缩进设置 alignment.shri = 1

设置效果图:

在这里插入图片描述 获取对齐方式信息:

# 获取当前对齐方式 alignment_info = alignment._search_key() print(alignment_info) # 打印结果: # (2, 1, 0, 0, 45, 0, 1, 0, 0)

其他对齐方式索引:

# 水平对齐方式 HORZ_GENERAL = 0x00 HORZ_LEFT = 0x01 HORZ_CENTER = 0x02 HORZ_RIGHT = 0x03 HORZ_FILLED = 0x04 HORZ_JUSTIFIED = 0x05 # BIFF4-BIFF8X HORZ_CENTER_ACROSS_SEL = 0x06 # Centred across selection (BIFF4-BIFF8X) HORZ_DISTRIBUTED = 0x07 # Distributed (BIFF8X) # 垂直对齐方式 VERT_TOP = 0x00 VERT_CENTER = 0x01 VERT_BOTTOM = 0x02 VERT_JUSTIFIED = 0x03 # Justified (BIFF5-BIFF8X) VERT_DISTRIBUTED = 0x04 # Distributed (BIFF8X) # 旋转角度 ROTATION_0_ANGLE = 0x00 ROTATION_STACKED = 0xFF # 自动缩进设置 SHRINK_TO_FIT = 0x01 NOT_SHRINK_TO_FIT = 0x00 4、单元格边框设置

建立单元格边框对象,设置属性值:

可设置项(默认值):

# self.left = self.NO_LINE # self.right = self.NO_LINE # self.top = self.NO_LINE # self.bottom = self.NO_LINE # self.diag = self.NO_LINE # self.left_colour = 0x40 # self.right_colour = 0x40 # self.top_colour = 0x40 # self.bottom_colour = 0x40 # self.diag_colour = 0x40 # self.need_diag1 = self.NO_NEED_DIAG1 # self.need_diag2 = self.NO_NEED_DIAG2

实例:

borders = my_style_1.borders # 左边框 细线 borders.left = 1 # 右边框 中细线 borders.right = 2 # 上边框 虚线 borders.top = 3 # 下边框 点线 borders.bottom = 4 # 内边框 粗线 borders.diag = 5 # 左边框颜色 蓝色 borders.left_colour = 0x0C # 右边框颜色 金色 borders.right_colour = 0x33 # 上边框颜色 绿色 borders.top_colour = 0x11 # 下边框颜色 红色 borders.bottom_colour = 0x0A # 内边框 黄色 borders.diag_colour = 0x0D

设置效果:

在这里插入图片描述 获取边框设置信息:

borders_info = borders._search_key() print(borders_info) # 打印结果 # (1, 2, 3, 4, 5, 12, 51, 17, 10, 13, 0, 0)

边框线型索引:

NO_LINE = 0x00 THIN = 0x01 MEDIUM = 0x02 DASHED = 0x03 DOTTED = 0x04 THICK = 0x05 DOUBLE = 0x06 HAIR = 0x07 #The following for BIFF8 MEDIUM_DASHED = 0x08 THIN_DASH_DOTTED = 0x09 MEDIUM_DASH_DOTTED = 0x0A THIN_DASH_DOT_DOTTED = 0x0B MEDIUM_DASH_DOT_DOTTED = 0x0C SLANTED_MEDIUM_DASH_DOTTED = 0x0D

注:边框颜色设置可参看字体颜色设置索引。

5、填充设置

建立填充对象,设置属性:

可设置项(默认值):

# self.pattern = self.NO_PATTERN # self.pattern_fore_colour = 0x40 # self.pattern_back_colour = 0x41

实例:

# 填充设置 pat = my_style_1.pattern # 打开填充 pat.pattern = 1 # 填充前景色、紫色 pat.pattern_fore_colour = 0x14 # 填充背景色、紫色 pat.pattern_back_colour = 0x14

效果图:

在这里插入图片描述 注:xlwt 模块好像只提供了颜色填充设置方法,图案填充方法未提供。颜色索引见字体颜色索引。

6、单元格保护

建立保护对象,设置属性:

可设置项(默认设置):

# self.cell_locked = 1 # self.formula_hidden = 0

实例:

# 设置单元格锁定 protection.cell_locked = 1 # 设定隐藏单元格内公式 protection.formula_hidden = 1 # 只有在sheet表设置为保护时才有效 work_sheet.set_protect(1)

注:只有在sheet表设置为保护时才有效,(效果可参考第二节表格保护内容)。

结尾:

以上就是本篇全部内容,感谢阅读。

下一篇博客内容为:根据 xlwt 模块的一些方法,用面向对象的思想,自写一个类实现:按行按列写入、自定义格式方法、自动调整列宽等 等功能。

【Python与Office】专栏

该专栏会对 Python 的第三方模块,如:xlwt,xlrd,python-docx等,操作 Office 办公软件(Word Excel PPT)的方法进行详细讲解。同时也会搭配一些实例演练,一方面强化知识点的理解与运用,另一方面也希望能起到,引导读者进行思考:如何用 python 提高 offic 办公软件办公效率的作用。

感兴趣的朋友,可以点个 关注 或 收藏 。如在博客中遇到任何问题或想法,可留言或私信。

创作不易,你的支持是我最大的动力,感谢 !



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3