百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python 模块xlwt 写入.xls文件(python xlwt写入一行数据)

off999 2024-10-08 06:16 28 浏览 0 评论

Python操作Excel的模块有很多,并且各有优劣,不同模块支持的操作和文件类型也有不同。下面是各个模块的支持情况:

  1. xlrd:xlrd 读取.xls文件
  2. openpyxl:openpyxl 读取写入.xlsx文件

模块

.xls

.xlsx

读取

写入

修改

保存

样式

图片

xlrd

支持

不支持

支持

不支持

不支持

不支持

不支持

不支持

xlwt

支持

不支持

不支持

支持

不支持

支持

支持

支持

xlutils

支持

不支持

不支持

支持

支持

支持

不支持

不支持

xlwings

支持

支持

支持

支持

支持

支持

支持

支持

openpyxl

不支持

支持

支持

支持

支持

支持

支持

支持

pandas

支持

支持

支持

支持

不支持

支持

不支持

不支持

一、安装

pip install xlwt

二、向xls文件中写入内容

import xlwt
#创建一个workbook对象,就相当于创建了一个Excel文件
workbook = xlwt.Workbook(encoding='utf-8',style_compression=0) #encoding:设置编码,可写中文;style_compression:是否压缩
# 创建一个sheet对象,相当于创建一个sheet页
worksheet = workbook.add_sheet('这是sheet1',cell_overwrite_ok=True) # cell_overwrite_ok:是否可以覆盖单元格,默认为False
# 向sheet页中添加数据:worksheet.write(行,列,值)
style = xlwt.XFStyle()# 初始化样式
worksheet.write(0,0,'我要发财啦',style)  # 第1行第1列写入数据,style:样式
# 将以上内容保存到指定的文件中
workbook.save('测试文件.xls')

三、设置样式

style = xlwt.XFStyle()# 初始化样式
font = xlwt.Font()# 设置字体样式(font)
pattern = xlwt.Pattern() #背景颜色设置
  1. 字体样式
font.name = '宋'   # 指定字体
font.height = 300   # 和excel字体大小比例是1:20
font.bold = True    # 字体是否加粗
font.underline = True   # 字体是否下划线
font.struck_out = True  # 字体是否有横线
font.italic = True  # 是否斜体字

#0x01
#0x02
#0x03
#0x04
#0x05
font.family=0x01

#xlwt.Font.CHARSET_ANSI_LATIN = 0x00C
#xlwt.Font.HARSET_SYS_DEFAULT= 0x01C
#xlwt.Font.HARSET_SYMBOL= 0x02
#xlwt.Font.CHARSET_APPLE_ROMAN= 0x4D
#xlwt.Font.CHARSET_ANSI_JAP_SHIFT_JIS= 0x80C
#xlwt.Font.HARSET_ANSI_KOR_HANGUL= 0x81
#xlwt.Font.CHARSET_ANSI_KOR_JOHAB= 0x82
#xlwt.Font.CHARSET_ANSI_CHINESE_GBK= 0x86
#xlwt.Font.CHARSET_ANSI_CHINESE_BIG5= 0x88
#xlwt.Font.CHARSET_ANSI_GREEK= 0xA1
#xlwt.Font.CHARSET_ANSI_TURKISH= 0xA2
#xlwt.Font.CHARSET_ANSI_VIETNAMESE= 0xA3
#xlwt.Font.CHARSET_ANSI_HEBREW= 0xB1
#xlwt.Font.CHARSET_ANSI_ARABIC= 0xB2
#xlwt.Font.CHARSET_ANSI_BALTIC= 0xBA
#xlwt.Font.CHARSET_ANSI_CYRILLIC= 0xCC
#xlwt.Font.CHARSET_ANSI_THAI= 0xDE
#xlwt.Font.CHARSET_ANSI_LATIN_II= 0xEE
#xlwt.Font.CHARSET_OEM_LATIN_I= 0xFF
font.charset = 0x86 #设置字符集

#可参考中的数值xlwt.Style.colour_map,colour_map属性返回一个字典,里面有颜色对应的序号font.colour_index =xlwt.Style.colour_map['blue']
font.colour_index = 4   # 字体颜色

# xlwt.Font.ESCAPEMENT_SUBSCRIPT 设置字体悬空位于下方
# xlwt.Font.ESCAPEMENT_SUPERSCRIPT 设置字体悬空位于上方
# xlwt.Font.ESCAPEMENT_NONE 设置字体没有这个效果
font.escapement= =xlwt.Font.ESCAPEMENT_SUPERSCRIPT

font.num_format_str = '#,##0.00' # 设置文字模式

style.font = font   # 设定字体样式
  1. 背景颜色设置
pattern = xlwt.Pattern()  
# 创建模式对象

#xlwt.Pattern.SOLID_PATTERN= 0x01 设置模式为实型
#xlwt.Pattern.NO_PATTERN= 0x00 设置模式为无模式
pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 设置背景颜色模式

#可参考中的数值xlwt.Style.colour_map,colour_map属性返回一个字典,里面有颜色对应的序号pattern.pattern_fore_colour =xlwt.Style.colour_map['blue']
pattern.pattern_fore_colour = 3  # 前景色不会影响单元格的边框
pattern.pattern_back_colour = 0x41 # 后景会影响单元格的边框

style.pattern = pattern # 设定背景图案样式
# 设置背景色
xlwt.add_palette_colour("custom_colour", 0x21)
workbook.set_colour_RGB(0x21, 219, 229, 241)
  1. 边框设置
borders = xlwt.Borders()
borderinfo = borders._search_key() #可以设置的属性
prit(borderinfo)
# 设定边框属性
# xlwt.Borders.NO_LINE = 0x00 无边框
# xlwt.Borders.THIN= 0x01 细实线
# xlwt.Borders.MEDIUM= 0x02 中实线
# xlwt.Borders.DASHED = 0x03中细虚线
# xlwt.Borders.DOTTED= 0x04 细虚线
# xlwt.Borders.THICK= 0x05 粗实线
# xlwt.Borders.DOUBLE0x06 双底线
# xlwt.Borders.HAIR= 0x07 细点虚线·
# xlwt.Borders.MEDIUM_DASHED= 0x08 粗虚线 
# xlwt.Borders.THIN_DASH_DOTTED= 0x09 细点划线
# xlwt.Borders.MEDIUM_DASH_DOTTED= 0x0A  粗点划线
# xlwt.Borders.THIN_DASH_DOT_DOTTED= 0x0B 细双点划线
# xlwt.Borders.MEDIUM_DASH_DOT_DOTTED= 0x0C 粗双点划线
# xlwt.Borders.SLANTED_MEDIUM_DASH_DOTTED= 0x0D 斜点划线
borders.left = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
#0x00到0x0D。
border.left_colour = 0x40
border.top_colour = 0x40
border.right_colour = 0x40
border.bottom_colour = 0x40

style.borders = borders
  1. 对齐方式设置(alignment)
alignment = xlwt.Alignment()
#xlwt.Alignment.VERT_TOP= 0x00 字体在单元格顶部
#xlwt.Alignment.VERT_CENTER= 0x01  字体垂直居中
#xlwt.Alignment.VERT_BOTTOM= 0x02  字体在单元格底部
#xlwt.Alignment.VERT_JUSTIFIED= 0x03 在合理的位置显示
#xlwt.Alignment.VERT_DISTRIBUTED= 0x04 有垂直居中的效果,如果字体超过单元格范围会垂直分布显示
alignment.vert = 0x01 #字体垂直位置

#xlwt.Alignment.HORZ_GENERAL = 0x00  正常显示
#xlwt.Alignment.HORZ_LEFT=0x01 左对齐
#xlwt.Alignment.HORZ_CENTER= 0x02 居中
#xlwt.Alignment.HORZ_RIGHT=0x03  右对齐
#xlwt.Alignment.HORZ_FILLED=0x04  填充单元格
#xlwt.Alignment.HORZ_JUSTIFIED=0x05  显示在合理的位置
#xlwt.Alignment.HORZ_CENTER_ACROSS_SEL=0x06 我觉得这个应该是显示在单元格的正当中
#xlwt.Alignment.HORZ_DISTRIBUTED=0x07 汉字时字体是水平 平均分布在表格中,如果是英文字母则是水平居中显示
alignment.horz = 0x03 #字体水平位置

#xlwt.Alignment.DIRECTION_GENERAL= 0x00  # BIFF8X  正常显示
#xlwt.Alignment.DIRECTION_LR= 0x01
#xlwt.Alignment.DIRECTION_RL= 0x02
alignment.dire = 0x00  #字体方向

#xlwt.Alignment.ORIENTATION_NOT_ROTATED= 0x00
#xlwt.Alignment.ORIENTATION_STACKED= 0x01
#xlwt.Alignment.ORIENTATION_90_CC= 0x02
#xlwt.Alignment.ORIENTATION_90_CW = 0x03
alignment.orie= 0x00

#xlwt.Alignment.WRAP_AT_RIGHT = 0x01  # 自动换行
#xlwt.Alignment.NOT_WRAP_AT_RIGHT= 0x00  # 默认不自动换行
alignment.wrap = 0x01 # 自动换行

#xlwt.Alignment.SHRINK_TO_FIT = 0x01  # 将字体缩小到适合单元格大小
#xlwt.Alignment.NOT_SHRINK_TO_FIT = 0x00  # 默认正常显示
alignment.shri = 0x01 #自动缩进

#xlwt.Alignment.WRAP_AT_RIGHT = 0x01  # 自动换行
#xlwt.Alignment.NOT_WRAP_AT_RIGHT= 0x00  # 默认不自动换行
alignment.wrap = 0x01 #自动换行

alignment.rota = 2 #旋转方向,值为数字,表示旋转的角度
alignment.inde = 0
alignment.merg = 0

style.alignment = alignment
  1. 设置单元格宽度
worksheet.col(col_index).width = 256 * len(col_str) * 2  # 设置列宽,计算列宽度:256是单元格基数*用数据长度*2最终的结果单元格的宽度和数据正好填满。
  1. 设置行样式
tall_style = xlwt.easyxf('font:height 600')  # 设置行高
worksheet.row(row_index).set_style(tall_style)  # 给第一行设置tall_style样式,也就是行高
worksheet.row(row_index).height_mismatch = True
worksheet.row(row_index).height =20 * 30  #20是基数*30是行的高度

四、其他

  1. 将一个日期输入一个单元格
import datetime

#'general' # 默认是此选项,常规显示。
#'0'
#'0.00'
#'#,##0',
#'#,##0.00
#'"#34;#,##0_);("#34;#,##0)'
#'"#34;#,##0_);[Red]("#34;#,##0)'
#'"#34;#,##0.00_);("#34;#,##0.00)'
#'"#34;#,##0.00_);[Red]("#34;#,##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)'
#'_("#34;* #,##0_);_("#34;* (#,##0);_("#34;* "-"_);_(@_)'
#'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)'
#'_("#34;* #,##0.00_);_("#34;* (#,##0.00);_("#34;* "-"??_);_(@_)'
#'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)'
#'mm:ss'
#'[h]:mm:ss'
#'mm:ss.0'
#'##0.0E+0'
#'@'
style.num_format_str = 'M/D/YY'

worksheet.write(0, 0, datetime.date.today(), style)

#时间类型的转换,把excel中时间转成python 时间(两种方式)
xlrd.xldate_as_tuple(table.cell(2,2).value, 0)   #转化为元组形式
xlrd.xldate.xldate_as_datetime(table.cell(2,2).value, 1)   #直接转化为datetime对象
xlrd.xldate_as_tuple(d,0) #d 是从excel中读取出来的浮点数
  1. 添加一个公式
worksheet.write(0,2,xlwt.Formula('A1 * B1'),style)# 求乘积
worksheet.write(0,2,xlwt.Formula('SUM(A1:A3)'),style)# 求和函数
worksheet.write(0,2, xlwt.Formula('AVERAGE(C1:C3)'),style)# 求平均数
  1. 单元格中添加超链接
worksheet.write(0, 0, xlwt.Formula('HYPERLINK("https://www.baidu.com";"百度")'),style))
  1. 合并列和行
worksheet.write_merge(8, 10, 2, 4, '合并单元格', style)
  1. 插入图片
worksheet.insert_bitmap("mm.bmp",0,0)
  1. 数据保护,设置单元格数据保护之后,数据只能查看不能修改和编辑
protection = xlwt.Protection()
protection.cell_locked = 1  # 设置单元格锁定
protection.formula_hidden = 1  # 设定隐藏单元格内公式
worksheet.set_protect(1)  # 只有在st表设置为保护时才有效
  1. 颜色映射
xlwt.Style.colour_map.aqua=0x31
xlwt.Style.colour_map.black=0x08
xlwt.Style.colour_map.blu=0x0C
xlwt.Style.colour_map.blue_gray=0x36
xlwt.Style.colour_map.bright_green=0x0B
xlwt.Style.colour_map.brow=0x3C
xlwt.Style.colour_map.coral=0x1D
xlwt.Style.colour_map.cyan_ega=0x0F
xlwt.Style.colour_map.dark_blue=0x12
xlwt.Style.colour_map.dark_blue_ega=0x12
xlwt.Style.colour_map.dark_green=0x3A
xlwt.Style.colour_map.dark_green_ega=0x11
xlwt.Style.colour_map.dark_purple=0x1C
xlwt.Style.colour_map.dark_red=0x10
xlwt.Style.colour_map.dark_red_ega=0x10
xlwt.Style.colour_map.dark_teal=0x38
xlwt.Style.colour_map.dark_yellow=0x13
xlwt.Style.colour_map.gold=0x33
xlwt.Style.colour_map.gray_ega=0x17
xlwt.Style.colour_map.gray25=0x16
xlwt.Style.colour_map.gray40=0x37
xlwt.Style.colour_map.gray50=0x17
xlwt.Style.colour_map.gray80=0x3F
xlwt.Style.colour_map.green=0x11
xlwt.Style.colour_map.ice_blue=0x1F
xlwt.Style.colour_map.indigo=0x3E
xlwt.Style.colour_map.ivory=0x1A
xlwt.Style.colour_map.lavender=0x2E
xlwt.Style.colour_map.light_blue=0x30
xlwt.Style.colour_map.light_green=0x2A
xlwt.Style.colour_map.light_orange=0x34
xlwt.Style.colour_map.light_turquoise=0x29
xlwt.Style.colour_map.light_yellow=0x2B
xlwt.Style.colour_map.lime=0x32
xlwt.Style.colour_map.magenta_ega=0x0E
xlwt.Style.colour_map.ocean_blue=0x1E
xlwt.Style.colour_map.olive_ega=0x13
xlwt.Style.colour_map.olive_green=0x3B
xlwt.Style.colour_map.orange=0x35
xlwt.Style.colour_map.pale_blue=0x2C
xlwt.Style.colour_map.periwinkle=0x18
xlwt.Style.colour_map.pink=0x0E
xlwt.Style.colour_map.plum=0x3D
xlwt.Style.colour_map.purple_ega=0x14
xlwt.Style.colour_map.red=0x0A
xlwt.Style.colour_map.rose=0x2D
xlwt.Style.colour_map.sea_green=0x39
xlwt.Style.colour_map.silver_ega=0x16
xlwt.Style.colour_map.sky_blue=0x28
xlwt.Style.colour_map.tan=0x2F
xlwt.Style.colour_map.teal=0x15
xlwt.Style.colour_map.teal_eg=0x15
xlwt.Style.colour_map.turquoise=0x0F
xlwt.Style.colour_map.violet=0x14
xlwt.Style.colour_map.white=0x09
xlwt.Style.colour_map.yellow=0x0D

相关推荐

android13正式版下载(安卓版本13)

出现该问题的原因是,用户在设置里开启了新下载的APP,仅添加到APP资源库选项。大家只要进入“设置-主屏幕”,把新下载的APP,改为“添加到主屏幕”即可解决问题。修改完成后,你再进入AppStore下...

firefox浏览器安卓版(firefox浏览器安卓版 打开本地网页)

要进入火狐浏览器手机版的主页,你可以通过以下几种方式进行:首先,打开火狐浏览器App,然后点击右上角的三条横线菜单按钮,接着选择“主页”选项。另外,你也可以直接在浏览器地址栏中输入“about:hom...

电脑cpu性能排行榜天梯图(“电脑cpu性能天梯图”)

一、英特尔酷睿i7670。这款英特尔CPU采用的是超频新芯,最大程度的提升处理器的超频能力。二、英特尔酷睿i74790kCPU:这款CPU采用22纳米制程工艺的框架,它的默认频率是4.0到4.4Ghz...

硬盘怎么分区合理(硬盘怎么分区合理一点)
  • 硬盘怎么分区合理(硬盘怎么分区合理一点)
  • 硬盘怎么分区合理(硬盘怎么分区合理一点)
  • 硬盘怎么分区合理(硬盘怎么分区合理一点)
  • 硬盘怎么分区合理(硬盘怎么分区合理一点)
路由器怎么设置密码不被别人蹭网
  • 路由器怎么设置密码不被别人蹭网
  • 路由器怎么设置密码不被别人蹭网
  • 路由器怎么设置密码不被别人蹭网
  • 路由器怎么设置密码不被别人蹭网
电脑自由截屏的快捷键是什么

快捷键是ctrl+alt+a,我们可将聊天窗口缩小,放在旁边。然后找到想要截屏的位置,这时我们在截屏旁边,就更加的方便了。在键盘中按下PrintScreenSysRq(简写为PrtSc)键,此快捷...

windows10精简版官网下载(win10官方精简版下载)

精简版的意思的它比原版的功能和软件少了,其实精简版的更适合大众,没有多余的其他必要功能,更快Win10版本主要为四个分别是专业版、家庭版、企业版、教育版,其实除了这四个之外,还有工作站版、LTSB/L...

cad2008安装失败(Win11安装cad2008安装失败)

解决方法:1、右键点击“开始”按钮,选择“程序和功能”;2、然后点击“启用或关闭windows功能”;3、勾选“Microsoft.NETFramework3.5(包括.Net2.0)”后点击确定按钮...

u盘在电脑上怎么找出来(u盘在电脑上怎么找到)

在电脑中找不到u盘,是因为系统没有自动识别出来,手动打开即可,具体的解决步骤如下:1、在桌面上点击我的电脑,右键,管理。2、打开管理界面,点击储存。3、进到储存页面。4、到这一步,也就可以看到了,有这...

联想一体机怎么进入bios(联想一体机怎么进入u盘启动)

所需工具:联想Lenovo品牌一体机、启动U盘。具体步骤如下:1、联想一体机从U盘启动设置步骤如下重启联想一体机,启动过程中按F1进入BIOS,部分机型则是开机按Enter键,进入之后再按F12选择进...

如何装ghost系统盘(ghost装机教程)

ghost是不能做系统c盘,它是一种对硬盘和分区制作成映像文件进行备份和恢复的工具软件,是不能进行操作系统安装。这个软件的使用目的是,当我们安装配置好操作系统以后,用ghost软件对c盘进行备份,或者...

加密u盘如何格式化(加密u盘如何格式化手机)

1,点击系统与安全进入电脑的控制面板界面,点击上方的系统与安全的选项,在系统界面找到最下方的管理工具功能组。2,选中u盘选择管理工具下面的创建并格式化硬盘分区,点击弹出磁盘管理的界面,在这个里面选中你...

万能显卡驱动离线版pc(万能显卡驱动离线版)

万用驱动是综合各电脑硬件的性能而制做的软件,对于大多数的电脑硬件驱动都好用,但对于少数品牌电脑驱动要求严格的,就不灵了。有的硬件用万能驱动后,使用效果不佳,就是因为没有完全驱动好。所以,知名品牌电脑硬...

如何让电脑一键还原(电脑怎样才能一键还原)
  • 如何让电脑一键还原(电脑怎样才能一键还原)
  • 如何让电脑一键还原(电脑怎样才能一键还原)
  • 如何让电脑一键还原(电脑怎样才能一键还原)
  • 如何让电脑一键还原(电脑怎样才能一键还原)
笔记本windows8系统下载(笔记本电脑系统win8)

在电脑上面就可以下载,打开浏览器搜索windous8系统会出现一些下拉选择,选择第一条或者选择有官网字样的,就直接有下载按钮,然后点击下载就可以了win8可以支持现在可以见到的所有Photosho...

取消回复欢迎 发表评论: