python处理excel表格——openpyxl

  • 一、标准使用方式:
  • 二、高级用法,参见openpyxl官方文档:[https://openpyxl.readthedocs.io/en/stable/](https://openpyxl.readthedocs.io/en/stable/)

openpyxl为三方库,需要 pip install openpyxl安装。

一、标准使用方式:

  1. 创建excel表格
# -*- coding:utf-8 -*-import os
import openpyxl
from ProcessorFile import config #定义全局变量,注意模块导入指导:https://www.jb51.net/article/138206.htmstudent_info = [{"name":"Jack", "gender":"man"}, {"name":"Mary", "gender":"woman"}]
excel_file = os.path.join(config.output_path, 'student.xlsx')book = openpyxl.Workbook() #创建一个新 excel工作簿
sheet = book.create_sheet('base_info') #创建一个新 sheet页for i in range(len(student_info)):# sheet.cell(row=i, column=0).value = student_info[i]['name']'''如上语句报错:ValueError: Row or column values must be at least 1;
行和列至少都要从1开始;openpyxl,首行首列都从1开始'''sheet.cell(row=i+1, column=1).value = student_info[i]['name']sheet.cell(row=i+1, column=2).value = student_info[i]['gender']book.save(excel_file) #这句一定要执行,这是数据插入之后的保存动作
print("create excel successful!")

效果图:

  1. 更新excel表格
# -*- coding:utf-8 -*-import os
import  openpyxl
from ProcessorFile import config #定义全局变量,注意模块导入指导:https://www.jb51.net/article/138206.htmexcel_file = os.path.join(config.output_path, 'student.xlsx')
book = openpyxl.load_workbook(excel_file) #加载已经创建好的excel表格
sheet = book['base_info'] #获取sheet页面rows = sheet.max_row #获取当前sheet页最大行数
columns = sheet.max_column #获取当前sheet页最大列数
print(rows, columns)for i in range(rows):for j in range(columns):sheet.cell(row=i+1, column=j+1).value = "null"book.save(os.path.join(config.output_path, 'student_update.xlsx')) #这句一定要执行,这是数据插入之后的保存动作
print("update excel successful!")

效果图:

  1. 获取excel表格内容方法:三个对象:工作薄(workbook)、工作表(worksheet)、 单元格(cell)
import os
import openpyxl
from openpyxl.styles import Alignment, Border, Side, PatternFill, Font, colorsdef getCell():#表格三个对象: 工作薄(workbook)、工作表(worksheet)、 单元格(cell)##该方法目的获取表格数据各种方法book = openpyxl.load_workbook(excel_path)sheet = book['base_info']##第一类:基本方法,:获取具体单元格A1 = sheet.cell(1,1) #return <Cell 'base_info'.A1>A1 = sheet.cell(row=1, column=1) #<Cell 'base_info'.A1>A1_value = A1.value #return valueprint(A1_value)##第二类:基本方法:获取范围(域)area = sheet['A1:H6']#return ((<Cell>,<Cell>),(<Cell>,<Cell>))print(area)for r in area:for c in r:print(c) #return <Cell>##第二种方法:根据最大行、最大列村换rows = sheet.max_row  # intcolumns = sheet.max_column  #intfor row in range(1, rows+1): #Row or column values must be at least 1for col in range(1, columns+1):cell = sheet.cell(row,col) #<Cell 'base_info'.A1>value = cell.value #<class 'str'>/<class 'int'>返回值##第三种方法:使用 item迭代for row in sheet.iter_rows():print(row) # return (cell<A1>, cell<B1>, cell<C1>)for co in row:print(co) #return cellpassfor col in sheet.iter_cols():print(col) # return (cell<A1>, cell<A2>, cell<A3>)for ro in col:print(ro) #return cell    print("get cell successful!")if __name__ == '__main__':# create_table()getCell()
  1. excel表格样式简单设置
import os
import openpyxl
from openpyxl.styles import Alignment, Border, Side, PatternFill, Font, colors
from openpyxl.utils import get_column_letter, column_index_from_stringdef setStyle():'''该方法简单设置表格样式'''book = openpyxl.load_workbook(excel_path)sheet = book['base_info']rows = sheet.max_rowcolumns = sheet.max_column###########合并单元格sheet.merge_cells(start_row=1, start_column=1,end_row=1, end_column=4)sheet.cell(1,1).value = '男儿何不带吴钩,收取关山五十州。请君暂上凌烟阁,若个书生万户侯。'sheet.merge_cells(start_row=4, start_column=1,  end_row=6,end_column=1)sheet.cell(4,1).value = '英雄'########设置行高、列宽sheet.row_dimensions[1].height = 25sheet.column_dimensions['A'].width = 50print(get_column_letter(1)) # return A,列编号整数转变为字母print(column_index_from_string('B')) # return 2,列编号字母转变为整数#######设置单元格样式align = Alignment(horizontal='center', vertical='center')font = Font(name='微软雅黑',size=10, bold=True, color=colors.RED)border = Border(left=Side(border_style='medium',color=colors.BLACK),right=Side(border_style='medium',color=colors.BLACK),top=Side(border_style='medium',color=colors.BLACK),bottom=Side(border_style='medium',color=colors.BLACK))fill = PatternFill(fill_type='solid', fgColor=colors.GREEN)#Cell对象属性:font(字体)/fill(填充)/border(边框)/alignment(位置)/style/protection/number_format/quotePrefix/pivotButtonsheet.cell(1,1).alignment = alignsheet.cell(1,1).font = fontsheet.cell(row=1, column=1).fill = fillsheet_area = sheet['A1:H6']for row in sheet_area:for col in row:col.border = borderbook.save(excel_path)print("update table successful!")if __name__ == '__main__':# create_table()setStyle()

二、高级用法,参见openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/

python3处理excel【三方库—openpyxl】相关推荐

  1. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  2. python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解

    扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...

  3. Python Excel第三方库——openpyxl

    文章目录 简介 安装 初试 读写数据 插入图片 TODO:批量插入图片 行高列宽 水平垂直居中 遍历所有单元格 单元格数字格式 数学公式 合并单元格 折叠 插入和删除行.列 移动范围单元格 样式 默认 ...

  4. python3打包成exe把openpyxl和pandas_Python openpyxl、pandas操作Excel方法简介与具体实例...

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  5. python自带库处理excel-python处理excel之第三方库openpyxl

    openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档.其 ...

  6. 深入浅出理解数据分析系列之:Python安装Excel文档库openpyxl和Pycharm为项目安装Excel文档库openpyxl

    深入浅出理解数据分析系列之:Python安装Excel文档库openpyxl和Pycharm为项目安装Excel文档库openpyxl 一.Python安装openpyxl 二.Pycharm为项目安 ...

  7. 乾坤大挪移,如何将同步阻塞(sync)三方库包转换为异步非阻塞(async)模式?Python3.10实现。

    众所周知,异步并发编程可以帮助程序更好地处理阻塞操作,比如网络 IO 操作或文件 IO 操作,避免因等待这些操作完成而导致程序卡住的情况.云存储文件传输场景正好包含网络 IO 操作和文件 IO 操作, ...

  8. python3遍历电子表格_用openpyxl遍历excel表格

    Python的openpyxl模块,提供了对excel表格的读写操作接口.本文介绍使用openpyxl来遍历excel表格. openpyxl支持Excel 2010 xlsx/xlsm/xltx/x ...

  9. python3读取excel数据-python3读取Excel表格数据的代码分享

    python3 读取Excel表格中的数据 需要先安装openpyxl库 通过pip命令安装: pip install openpyxl 源码如下: #!/usr/bin/python3 #-*- c ...

最新文章

  1. AI一分钟 | 柯洁战胜AI“求报道”,期待正式与围棋AI下让子棋;小米MIUI 10全面启动,主打人工智能人机交互
  2. Chem. Sci. | 3D深度生成模型进行基于结构的从头药物设计
  3. PHP 学习笔记 01
  4. magent实现memcached集群的一个问题
  5. 参数整定临界比例度实验_实验低温浴“秘方”,调节两个溶剂的比例实现零下10度到78度定温配制...
  6. 3分钟弄明白JAVA三大修饰符
  7. 余额宝升级,限额限时解除,以后再也不用定闹钟抢破头了!
  8. es7 bulk api 批量插入es
  9. golang 多协程的同步方法总结
  10. 计算机培训专业中心架,ASEM工业电脑工业计算机全系列自动化产品-销售中心
  11. [python] 字典:按key排序或按value排序
  12. 【原创】CPU 100%+磁盘写满 问题排查
  13. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(11):一些图片
  14. css中相对长度单位_看看CSS中的长度单位
  15. “鲁班”画海报、“小蜜”当客服,“菜鸟”管物流……,双十一阿里黑科技知多少...
  16. whois的原理及介绍
  17. 使用 Tenderly 为区块链交易设置警报通知
  18. 服务器丢包都有哪些原因?
  19. NCUT 数据库基础 铁路购票系统
  20. 判断指定日期为当年第几天(Java实现)

热门文章

  1. Unity超详解如何获取学生版许可证,激活许可证
  2. linux修改dns端口号,Linux防火墙设置-DNS服务器篇
  3. Socket的读取超时与连接超时
  4. 高速缓冲存储器Cache的映射方式
  5. 使用switch时有哪些注意事项
  6. android 音乐播放器mv播放功能,Android 音视频学习基础Android最简单的音频播放器| 神农笔记...
  7. springboot默认日志配置及程序启动脚本
  8. php判断用户下线,php 获取客户下线时间
  9. 基于C语言+SQL Server2008实现(控制台)图书管理系统【100010024】
  10. java爬虫网易热点新闻webmagic