python 模块xlwt 写入.xls文件

news2024/11/19 16:33:36

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

  1. xlrd:xlrd 读取.xls文件
  2. xlwings:xlwings 读取写入Excel文件
  3. openpyxl:openpyxl 读取写入.xlsx文件
    在这里插入图片描述
一、安装
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   # 设定字体样式
    
  2. 背景颜色设置
    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)
    
  3. 边框设置
    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
    
  4. 对齐方式设置(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
    
  5. 设置单元格宽度
    worksheet.col(col_index).width = 256 * len(col_str) * 2  # 设置列宽,计算列宽度:256是单元格基数*用数据长度*2最终的结果单元格的宽度和数据正好填满。
    
  6. 设置行样式
    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
    #'"$"#,##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'
    #'@'
    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中读取出来的浮点数
    
  2. 添加一个公式
    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)# 求平均数
    
  3. 单元格中添加超链接
    worksheet.write(0, 0, xlwt.Formula('HYPERLINK("https://www.baidu.com";"百度")'),style))
    
  4. 合并列和行
    worksheet.write_merge(8, 10, 2, 4, '合并单元格', style)
    
  5. 插入图片
    worksheet.insert_bitmap("mm.bmp",0,0)
    
  6. 数据保护,设置单元格数据保护之后,数据只能查看不能修改和编辑
    protection = xlwt.Protection()
    protection.cell_locked = 1  # 设置单元格锁定
    protection.formula_hidden = 1  # 设定隐藏单元格内公式
    worksheet.set_protect(1)  # 只有在st表设置为保护时才有效
    
  7. 颜色映射
    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
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/927846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux】2 make/Makefile和gitee

文章目录 一、Linux项目自动化构建工具-make/Makefile1.1 背景1.2 实例代码1.3 原理1.4 项目清理 二、linux下第一个小程序-进度条2.1 行缓冲区2.2 进度条 三、git以及gitee总结 ヾ(๑╹◡╹)ノ" 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)ノ" 一…

十一、pikachu之XXE

文章目录 1、XXE漏洞概述1.1 XML定义1.2 XML结果1.2 XML文档格式1.2.1 DTD内部文档声明1.2.2 DTD外部文档声明1.2.3 DTD声明 2、实战 1、XXE漏洞概述 XXE(xml external entity injection):即xml外部实体注入漏洞,也就是说服务端接收和解析了来自用户端的…

我裸辞去面试大公司python岗位了!

最近换工作了,坐标上海,裸辞,之前早有前辈们说过,“裸辞一时爽,一直裸辞一直爽”,这话一点不假,裸辞你要面临没有收入来源,但是每天眼睁睁看着各种花销不断支出的煎熬,我主要是觉得一…

高忆管理:k线图24种经典图解?

K线图是股市技能剖析中的常用工具,它可以描绘出一段时间内股票或指数的开盘价、收盘价、最高价和最低价等信息,为投资者提供了重要的信息。在这篇文章中,咱们将从多个角度剖析24种经典的K线图,协助读者深入了解和应用它们。 榜首&…

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPI flash制作虚拟U盘 📌参考文章:https://xiaozhuanlan.com/topic/6058234791🎞实现效果演示: 🔖上图中的读到的FLASH_ID所指的是针对不同容量,所对应的ID。 //W25X/Q不同容量对应…

(五)k8s实战-配置管理

一、ConfigMap 使用 kubectl create configmap -h 查看示例&#xff0c;构建 configmap 对象 1) 基于文件夹&#xff0c;加载文件夹下所有配置文件&#xff0c;创建 kubectl create configmap <configmapName> --from-file<dirPath>2) 指定配置文件&#xff0c;创…

vue3的hooks你可以了解一下

更详细的hooks了解参考这个大佬的文章&#xff1a;掘金&#xff1a;Hooks和Mixins之间的区别 刚开始我简单看了几篇文章感觉Hooks这个东西很普通&#xff0c;甚至感觉还不如vue2的mixin好用。还有export import 感觉和普通定义一个utils文件使用没什么区别。但是Hooks这个东西肯…

vue学习 记录

vue学习 记录 https://v2.cn.vuejs.org/ https://cn.vuejs.org/ https://chrome.zzzmh.cn/index#/index 更多工具— 扩展程序

VLOOKUP

VLOOKUP简单应用 VLOOKUP(A1,B:B,1,FALSE) 是查询A1这子格子的数据在B这一列里面有没有找到相同数据的值,如果有的话就放在当前格子里面去 如果没有的话就是#NA VLOOKUP(A1,F:G,2,FALSE) 是查询A1这子格子的数据在F列查相同的数据,然后再取G列这一行后面的这个格子的数据放到…

连锁餐饮行业的运维困局,向日葵远程控制提供“标准答案”

企业数字化转型的应用落地&#xff0c;在连锁餐饮行业是非常容易被顾客所感知到的&#xff0c;最典型的例子就是各种自助点餐设备。 往往在这些自助点餐设备的背后&#xff0c;还拥有一个覆盖进销存管理、供应链、客户反馈、巡店管理、视频监控等方面的完善的数字化系统&#…

VR全景加盟会遇到哪些问题?全景平台会提供什么?

想创业&#xff0c;你是否也遇到这些问题呢&#xff1f;我是外行怎么办&#xff1f;没有团队怎么办&#xff1f;项目回本周期快吗&#xff1f;项目靠谱吗&#xff1f;加盟平台可信吗&#xff1f;等等这类疑问。近几年&#xff0c;VR产业发展迅速&#xff0c;尤其是VR全景项目在…

分布式事务篇-1 分布式事务介绍

文章目录 前言一、分布式事务是什么&#xff1f;二、分布式事务的理论基础&#xff1a;2.1. CAP定理&#xff1a;2.1.1 CAP定理介绍&#xff1a;2.1.2 AP VS CP&#xff1a;2.1.3 CAP 定理的误解&#xff1a; 2.2. Base 理论&#xff1a;2.3. CAP定理和BASE理论的关系&#xff…

Java语言请求api接口1688阿里巴巴电商平台按关键字搜索商品示例说明

关键词搜索商品API接口在电商平台中具有重要的作用。以下是该API接口的一些重要性&#xff1a; 提供精准搜索&#xff1a;关键词搜索商品API接口可以根据用户输入的关键词&#xff0c;快速准确地匹配出符合用户需求的商品。这样可以节省用户在浏览商品时的时间和精力&#xff…

Sql Server导出数据库到另一个数据库

1.打开sql server数据库&#xff0c;连接到服务器后&#xff0c;找到需要导出的数据库&#xff0c;右击后选择 任务->导出数据。 2.点击 下一步。 3.身份验证可以使用SQL Server身份验证&#xff0c;就是当时建立连接时的用户名和密码&#xff0c;数据库名称使用默认的&…

大数据项目实战(Hadoop集群搭建)

一&#xff0c;搭建大数据集群环境 1.2 Hadoop集群搭建 1.2.1 jdk安装 1.下载jdk (1)在根目录下创建三个子目录以备后用。具体如下&#xff1a; mkdir -p /export/data mkdir -p /export/software mkdir -p /export/servers (2)下载路径&#xff1a; 1、官网下载地址http…

mysql my.ini、登录、用户相关操作、密码管理、权限管理、权限表

my.ini 配置文件格式 登录mysql mysql -h hostname | IP -P port -u username -p database -e “select 语句”&#xff1b; 创建用户、修改用户、删除用户 create user ‘zen’ identified by ‘密码’ ## host 默认是 % create user ‘zen’‘localhost’ identified by ‘密…

SMC_TRAFO_GantryCutter2 (FB) 带刀片旋向龙门

裁布机&#xff1a;刀片按XY走向&#xff0c;偏转刀片角度。 pi&#xff1a;目标位置矢量&#xff08;x&#xff0c;y&#xff09;&#xff0c;插值器的输出 v&#xff1a;当前路径切线的矢量&#xff0c;插值器的输出 dOffsetX&#xff1a; x轴的附加偏移 dOffsetY&#xf…

高效数据传输与管理利器:镭速传输方案助力企业提升效率与安全

随着互联网的迅速发展和普及&#xff0c;企业和机构所拥有的数据类型和数量越来越多。这些数据分布在不同的服务器、数据中心甚至不同的云平台上&#xff0c;导致有效管理和调度变得困难。为解决这一问题&#xff0c;需要一种可靠、自动化且可视化的解决方案&#xff0c;能够实…

《华为认证》交换堆叠介绍

定义 堆叠是指将多台支持堆叠特性的交换机通过堆叠线缆连接在一起&#xff0c;从逻辑上变成一台交换设备&#xff0c;作为一个整体参与数据转发。如图1所示&#xff0c;SwitchA与SwitchB通过堆叠线缆连接后组成堆叠系统。 图1 堆叠示意图 应用场景 提高可靠性 堆叠系统多台成…

C++二叉树进阶

本期内容我们讲解二叉树的进阶知识&#xff0c;没有看过之前内容的小伙伴建议先看往期内容 二叉树-----补充_KLZUQ的博客-CSDN博客 目录 二叉搜索树 代码实现 基础框架 Insert Find Erase 析构函数 拷贝构造 赋值 二叉搜索树的应用 全部代码 二叉搜索树 二叉搜索树…