python xlwt写入数据-Python用xlwt写excel

有时候会需要对数据做excel形式的导出,下面做个总结

1.新建一个表,向表里添加一个sheet,并且设置单元格样式,设置字体样式(字体,字号),设置行高,设置列宽

# -*- coding: utf-8 -*-

import xlwt

workbook = xlwt.Workbook(encoding="utf-8")

sheet = workbook.add_sheet(u"sheet", cell_overwrite_ok=True)

sheet.col(0).width = 256 * 15 # 设置第一列的宽度为15,宽度的基本单位为256.所以设置的时候一般用256 × 需要的列宽。

# 设置行高为可以修改,并修改为 40,行高的基本单位为20,设置同行高。

sheet.row(0).height_mismatch = True

sheet.row(0).height = 20 * 40

2.设置单元格风格。Font()用来设置单元格字体内容,如字体类型、大小等;borders()设置单元格边框线粗细;partern()设置单元格背景颜色;XFStyle()设置风格类型;alignment()用来设置了字体水平居中、垂直居中、自动换行。

style = xlwt.XFStyle()

font = xlwt.Font()

font.name = "SimSun" # 宋体

font.height = 20 * 11 # 字体大小为11,字体大小的基本单位是20.

font.bold = False # 设置字体为不加粗

font.colour_index = 0x01 # 字体颜色默认为黑色,此处设置字体颜色为白色, 颜色范围为:0x00-0xff

style.font = font

pat = xlwt.Pattern()

pat.pattern = xlwt.Pattern.SOLID_PATTERN # 设置单元格背景颜色

pat.pattern_fore_colour = xlwt.Style.colour_map["dark_blue"] # 设置单元格背景颜色为深蓝

style.pattern = pat

borders = xlwt.Borders()

borders.left = 1

borders.right = 1

borders.top = 1

borders.bottom = 1

style.borders = borders

颜色映射如下

_colour_map_text = """

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"""

继续设置单元格中内容中位置,居中,局左右等

使用xlwt中的Alignment来设置单元格的对齐方式,其中horz代表水平对齐方式,vert代表垂直对齐方式。

VERT_TOP = 0x00 上端对齐

VERT_CENTER = 0x01 居中对齐(垂直方向上)

VERT_BOTTOM = 0x02 低端对齐

HORZ_LEFT = 0x01 左端对齐

HORZ_CENTER = 0x02 居中对齐(水平方向上)

HORZ_RIGHT = 0x03 右端对齐

style.alignment.horz = 0x02

# 水平居中

style.alignment.vert = 0x01

# 垂直居中

对于会计数据,需要设置单元格的内容格式,比如人民币,美元之类的。

style.num_format_str = "_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)" # 设置单元格内容格式为 人民币,保留到小数点后两位

其他格式参考如下

fmts = [

"general",

"0",

"0.00",

"#,##0",

"#,##0.00",

""$"#,##0_);("$"#,##",

""$"#,##0_);[Red]("$"#,##",

""$"#,##0.00_);("$"#,##",

""$"#,##0.00_);[Red]("$"#,##",

"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",

"@"

]

3.写入数据,并保存

sheet.write(0, 1, "content", style)

# 合并第0行的第0列到第3列。

worksheet.write_merge(0, 0, 0, 3, "First Merge")

workbook.save("test.xls")

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值