模块介绍

xlwt、xlrd、xlutils可以完成读excel的读、写和修改操作,只需要通过pip安装相应的模块即可。

使用xlrd模块读excel

使用例子

import xlrd# 常规读取
filename = "test.xls"               #文件路径
wb = xlrd.open_workbook(filename)   # 加载这个xls文件
sh = wb.sheet_by_index(0)           # 根据索引选择表格
sh.row(i)           # 获取第i+1行的所有数据组成的list
sh.row_values(rowx, start_colx=0, end_colx=None)     # 获取第rowx+1行的某几列的数据并组成list
rows = sh.nrows                     # 获取该表格所有行数
ncols = sh.ncols                  # 获取该表格所有列数
for i in range(1,rows):             # 从第二行开始按行读取title = sh.cell(i,0).value      # 取第i+1行,第1列的数据ctype = sh.cell(i,0).ctype      # 取第i+1行,第1列的数据类型# 根据列名获取某行的值
def get_col_index(name,workbook,sheet):for i in range(sheet.ncols):name2 = sheet.cell(0,i).valueprint(name2)if name2 == name:return ireturn -1value = sh.cell(1,get_col_index("创建时间")).value

value的ctype

ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

date类型的转换

from xlrd import xldate_as_tuplecell =  sh.cell(i,10)
if cell.ctype == 3:date = xldate_as_tuple(sheet.cell(i,3).value,0)pubtime = datetime.datetime(*date)

使用xlwt模块写excel

使用例子

import xlwtfile = xlwt.Workbook()      #新建个文件
sheet = file.add_sheet('test_sheet0',cell_overwrite_ok=True)  #新建个表格,指定表名以及是否可覆盖写
sheet.write(i,j,value)     #在第i+1行和第j+1列写value(i、j从0开始)
file.save("test_xls.xls")   #保存成xls文件并指定文件名

更多功能


# 设置某列的宽度
sheet.col(0).width = 200# 写日期
style = xlwt.XFStyle()
style.num_format_str = 'D-MMM-YY'
worksheet.write(0, 0, datetime.datetime.now(), style)# 写公式
sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)'))# 合并单元格的写
sheet.write_merge(0, 0, 0, 3, 'First Merge')
# write_merge(x, x + h, y, w + y, value, sytle) x和y表示当前行列,h和w为要合并的行数和列数# 表格的style# 修改字体:
style = xlwt.XFStyle()
font = xlwt.Font()              # 为样式创建字体
font.name = 'Times New Roman'   # 字体名称
font.bold = True                # 黑体
font.colour_index = 2           # 修改字的颜色
font.underline = True           # 下划线
style.font = font               # 使用到样式中
sheet.write(0,1,"编号",style)# 修改单元格背景色
style = xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5 #色号,可以在源代码中看到色号和颜色的对应关系
style.pattern = pattern
sheet.write(0,2,"编号",style)

使用xlutils模块修改excel

思路:使用xlutils的copy函数复制一份xlrd读取到的workbook,并在此基础上进行写操作。

使用例子

import xlrd
import pymysql
from xlrd import open_workbook
from xlutils.copy import copy
import xlwtfile_name = "test_update.xls"
workbook = xlrd.open_workbook(file_name)
sheet = wb.sheet_by_index(0)
workbook_update = copy(workbook)  # 复制workbook
sheet_update = workbook_update.get_sheet(0)
sheet_update.write(i,j,value)
workbook_update.save(file_name)

然而,无论是xlrd、xlwt还是xlutils,对excel的操作都仅限excel一个表的大小小于等于65535行时才可以,大于65535行的话,就需要另外一个模块了,这就是openpyxl。

使用openpyxl修改excel

贴个demo,自己领悟- -

# # coding = utf-8import openpyxl
from urllib.parse import urlparsefilename = "链接.xlsx"
workbook = openpyxl.load_workbook(filename)
worksheet = workbook.worksheets[0]
# worksheet = workbook.active
# 在第一列之前插入一列
#worksheet.insert_cols(15)  #
print(worksheet.max_row)
print(worksheet.max_column)
for i in range(1,worksheet.max_row):#print(row[2].value)url = worksheet.cell(row=i, column=2).valueprint(url)if not url or  "http" not in url:continue
#   print(url)url = url[:url.find("?")] if "?" in url else urldomain_name = urlparse(url).netlocprint(domain_name)worksheet.cell(row=i, column=3).value = domain_name
# # 枚举出来是tuple类型,从0开始计数
#
file_name = filename[:filename.find(".")] + "_结果.xlsx"
workbook.save(file_name)

【python】使用xlwt、xlrd、xlutils、openpyxl操作excel相关推荐

  1. 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

    详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...

  2. python openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改

    python xlrd/openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改 代码: 错误: excel读 ...

  3. python openpyxl 操作excel ,使用 conditional_formatting,insert_rows

    场景 python 使用 openpyxl 操作 excel 对于简单的格式来说还是挺方便的,但是对于复杂的格式,操作没有手动来的简单,如果对于复杂的格式也不是用python来做的.对于一个原有的报表 ...

  4. Python办公自动化之 openpyxl 操作 Excel

    今天给大家分享一篇用 openpyxl 操作 Excel 的 Python 办公自动化文章.5分钟就能掌握- 各种数据需要导入Excel?多个Excel要合并?目前,Python处理Excel文件有很 ...

  5. python调用百度OCR识别证件+操作excel表格

    python调用百度OCR识别证件+操作excel表格 如果要操作文件的话最好让程序知道文件存不存在,因为做了GUI界面,报错不会直接弹出来,异常捕获就用得比较频繁 因为面向对象没学好,GUI是用工具 ...

  6. python使用 xlwt,xlrd,xlutils库操作Excel教程

    文章目录 (一)xlwt完整示例 (二) xlwt,xlrd,xlutils完整示例 (三)自主选择excel的存储位置 (四)表格样式速查 (五)+样式示例代码(注释版) (一)xlwt完整示例 # ...

  7. 【Python基础】python使用openpyxl操作excel

    1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...

  8. python openpyxl操作Excel表格

    原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志, ...

  9. Python.openpyxl操作Excel

    Python 操作 Excel 存取数据 1. openpyxl 模块 1.1 安装 openpyxl 模块 1.2 Excel 文件的三个对象 1.2.1 Workbook 对象 1.2.2 Wor ...

最新文章

  1. 帮朋友招聘赴北京微软ASP.NET开发工程师
  2. AI寒冬论作者:通用人工智能仍是白日梦
  3. jsp 特殊字符转义
  4. 【蚁群路径规划】基于MATLAB的蚁群算法的二维路径规划
  5. [云炬创业学笔记]第三章商业创意的发掘与评估测试2
  6. c语言主范式与编码,超详细!终于搞明白KMP算法
  7. SQL Server 系统存储过程
  8. PHP 计算两个两个文件的相对路径
  9. mysql插入日期_初识MySQL
  10. 一个华为设备防病毒 ACL 配置
  11. compile php with openssl on mac osx error 填坑
  12. 手机自带计算机的功能,手机上的这3个小功能,比电脑方便好用,你知道吗?...
  13. Apache ab 使用说明
  14. Spring定时器的配置
  15. 51单片机语音跳绳计播报跳绳数目
  16. 别错过!漂亮又好用的思维导图模板
  17. 被逼无奈,沉默寡言的程序员也开始露脸拍视频了
  18. 计算机网络中常见的名词缩写
  19. C语言 结构体指针强制转换,c中结构体指针的强制类型转换
  20. 1028 大数乘法 V2(NTT or FTT)

热门文章

  1. js 函数的length
  2. 设计模式之——封装、继承、多态
  3. 一看就会的20行代码爬取豆瓣读书Top250
  4. Java Swing常用面板之普通面板JPanel
  5. 基于改进YOLOv5的斑马线和汽车过线行为检测
  6. python all和any用法_Python基础:numpy中any()和all()的用法
  7. Java之抽象类与接口
  8. java版gRPC实战之三:服务端流
  9. Oracle 快速入门 触发器游标
  10. java数值计算算法编程,Java数值计算算法编程