Python获取excel内容及相关操作代码实例

Python没有自带openyxl,需要安装: pip install openyxl

打开excel文档: openyxl.load_workbook(excel地址) - 打开现有excel文件

openyxl.Workbook() - 新建一个excel文件

返回一个工作博对象

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
print(type(wb)) # <class 'openpyxl.workbook.workbook.Workbook'>

openpyxl.load_workbook()函数,传入一个存在的excel文件名称/excel文件名称+文件路径,返回一个workbook对象。

从workbook对象中获取工作表

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
# print(type(wb))  # <class 'openpyxl.workbook.workbook.Workbook'>
# 工作簿对象.sheetnames  - 获取当前工作簿中所有表的名字
# print(wb.sheetnames) ['Sheet1', 'Sheet2', 'Sheet3']
# 工作簿对象.active  - 获取当前活动表对应的Worksheet对象
# print(wb.active)  <Worksheet "Sheet1">
# 工作簿对象[表名]  - 根据表名获取指定表对象
# print(wb["Sheet2"]) <Worksheet "Sheet2">
# 表对象.title  - 获取表对象的表名
ws = wb["Sheet1"]
# print(ws.title)  Sheet1
# 表对象.max_row  - 获取表中最多有多少行
# print(ws.max_row)  15
# 表对象.max_column  - 获取表有多少列
print(ws.max_column) # 3

从表中取得单元格

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["Sheet1"]
# 表对象['列号行号']  - 获取指定列的指定行对应的单元格对象(单元格对象是 Cell 类的对象,列号是从A开始,行号是从1开始)
a = ws["A1"]
# print(a) # <Cell 'Sheet1'.A1>
# 单元格对象.value  - 获取单元格中的内容
print(a.value)
# 单元格对象.row - 获取行号(数字1开始)
print(a.row)
# 单元格对象.column  - 获取列号(数字1开始)
print(a.column)
# 单元格对象.coordinate  - 获取位置(包括行号和列号)
print(a.coordinate)
# 表对象.iter_rows() - 一行一行的取
row_s = ws.iter_rows()
for a in row_s:
  for i in a:
    print(i.value)
# 表对象.iter_cols()  - 列表一列的取
col_s = ws.iter_cols()
for c in col_s:
  for j in c:
    print(j.value)

用字母来指定列时会出现列Z之后用两个字母代替,可以调用表的cell()方法,传入整数作为行数和列数,第一行或者第一列的整数是1,而不是0

表对象.cell(行号,列号)

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["Sheet1"]
# 获取第二列的所有内容
max_row = ws.max_row
for row in range(1, max_row + 1):
  cell = ws.cell(row, 2)
  print(cell.value)

从表中取得列和行

取电子表格中一行、一列或一个矩形区域中的所有 Cell 对象

表对象[位置1:位置2] 获取指定范围内的所有单元格

import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["Sheet1"]
max_row = ws.max_row
column = get_column_letter(max_row)
# 获取第一列所有单元格对象
row2 = ws["A1":f"{column}1"]
ss = [(cell.coordinate, cell.value) for cells in row2 for cell in cells]
print(ss)
import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["Sheet1"]
max_cols = ws.max_column
column = get_column_letter(max_cols)
# 获取第一片区域所有单元格对象
row2 = ws["A1":f"{column}3"]
ss = [(cell.coordinate, cell.value) for cells in row2 for cell in cells]
print(ss)

创建并保存Excel文档

openpyxl.Workbook() - 创建空的Excel文件对应的工作薄对象

工作薄对象.save(文件路径) - 保存文件

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["Sheet1"]
# 修改sheet的名称
ws.title = "hello_world"
wb.save("test.xlsx")

创建和删除sheet

工作薄对象.create_sheet(title, index) - 在指定工作薄中的指定位置(默认是最后)创建指定名字的表,并返回表对象

工作薄对象.remove(表对象) - 删除工作薄中的指定表

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
wb.create_sheet()
print(wb.sheetnames)
wb.create_sheet("test1")
print(wb.sheetnames)
wb.create_sheet("test2", index=0)
print(wb.sheetnames)
wb.remove(wb["test2"])
print(wb.sheetnames)
wb.save("test.xlsx")

将数据写入表格中

import openpyxl
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["hello_world"]
# 方式一
ws["A4"] = "hello_world"
# 方式二
ws.cell(4, 5).value = "hello_test"
wb.save("test.xlsx")

设置单元格样式

用表格展示数据的时候,有的时候需要对不同的数据以不同的风格进行展示从而达到分区或者强调的作用。

import openpyxl
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment

# 1.打开工作薄
wb = openpyxl.load_workbook("test.xlsx")
ws = wb["hello_world"]
# 2.设置单元格字体样式
"""
Font(
  name=None,   # 字体名,可以用字体名字的字符串
  strike=None,  # 删除线,True/False
  color=None,   # 文字颜色
  size=None,   # 字号
  bold=None,   # 加粗, True/False
  italic=None,  # 倾斜,Tue/False
  underline=None # 下划线, 'singleAccounting', 'double', 'single', 'doubleAccounting'
)
"""
# 1:创建字体对象
font1 = Font(
  size=20,
  italic=True,
  color="ff0000",
  bold=True,
  strike=True
)
# 2:设置指定单元格的字体
# 单元格对象.font = 字体对象
ws["B2"].font = font1

# 3:设置单元格填充样式
"""
PatternFill(
  fill_type=None,  # 设置填充样式: 'darkGrid', 'darkTrellis', 'darkHorizontal', 'darkGray', 'lightDown', 'lightGray', 'solid', 'lightGrid', 'gray125', 'lightHorizontal', 'lightTrellis', 'darkDown', 'mediumGray', 'gray0625', 'darkUp', 'darkVertical', 'lightVertical', 'lightUp'
  start_color=None # 设置填充颜色
)
"""
fill = PatternFill(
  fill_type="solid",
  start_color="ffff00"
)
ws["B2"].fill = fill

# 设置单元格对齐样式
al = Alignment(
  horizontal="right",  # 水平向方: center 靠左:left 靠右: right
  vertical="top"     # 垂直方向: center, top, bottom
)
ws["B2"].alignment = al

# 设置边框样式
# 设置边对象(四个边可以是一样的也可以不同,如果不同就创建多个Side对象)
side = Side(border_style="thin", color="0000ff")
# 设置边框对象(left、right、top、bottom表示的是边框的四个边,这儿四个边使用的是一个边对象)
db = Border(left=side, right=side, top=side, bottom=side)
ws["B2"].border = db

# 设置单元格的宽度和高度
# 设置指定列的宽度
ws.column_dimensions["A"].width = 20
# 设置指定行的高度
ws.row_dimensions[1].height = 45

wb.save("test.xlsx")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python批量将excel内容进行翻译写入功能

    由于小编初来乍到,有很多地方不是很到位,还请见谅,但是很实用的哦! 1.首先是需要进行文件的读写操作,需要获取文件路径,方式使用os.listdir(路径)进行批量查找文件. file_path = '/home/xx/xx/xx' # ret 返回一个列表 ret = list_dir = os.listdir(file_path) # 遍历列表,获取需要的结尾文件(只考虑获取文件,不考虑执行效率) for i in ret : if i.endswith('xlsx'): # 执行的逻辑 2

  • Python实现提取XML内容并保存到Excel中的方法

    本文实例讲述了Python实现提取XML内容并保存到Excel中的方法.分享给大家供大家参考,具体如下: 最近做一个项目是解析XML文件,提取其中的chatid和lt.timestamp等信息,存到excel里. 1.解析xml,提取数据 使用python自带的xml.dom中的minidom(也可以用lxml) xml文件如下: minidom.parse()#解析文件,返回DOM对象 _get_documentElement()DOM是树形结构,获得了树形结构的根节点 getElements

  • python保留格式汇总各部门excel内容的实现思路

    使用pthon汇总各部门的excel内容,主要思路: 1.使用pandas读入汇总表(b3df)和其中一个部门的表格内容(dedf) 2.填充pandas空值,使'项目名称','主管部门'列没有空值 3.使用xlwings打开汇总表(b3ws)和部门表(dews) 4.用b3df.dedf对比两个表中项目的行数是否一样,不一样则在汇总表(b3ws)插入行,使汇总表和部门表格(dews)一致 5.复制部门表格(dews)内容到汇总表(b3ws) 6.保存退出 汇总表格如下: 汇总A.B.C.D部门

  • Python读取txt内容写入xls格式excel中的方法

    由于xlwt目前只支持xls格式,至于xlsx格式,后面会继续更新 import xlwt import codecs def Txt_to_Excel(inputTxt,sheetName,start_row,start_col,outputExcel): fr = codecs.open(inputTxt,'r') wb = xlwt.Workbook(encoding = 'utf-8') ws = wb.add_sheet(sheetName) line_number = 0#记录有多少

  • python对Excel按条件进行内容补充(推荐)

    关于xlrd/xlwt和openpyxl的差别 两者都是对于excel文件的操作插件,两者的主要区别在于写入操作, 其中xlwt针对Ecxec2007之前的版本,即.xls文件,其要求单个sheet不超过65535行, 而openpyxl则主要针对Excel2007之后的版本(.xlsx),它对文件大小没有限制. 另外还有区别就是二者在读写速度上的差异,xlrd/xlwt在读写方面的速度都要优于openpyxl,但xlwt无法生成xlsx openpyxl的用法 官方文档 先了解下Workshe

  • 如何基于python操作excel并获取内容

    这篇文章主要介绍了如何基于python操作excel并获取内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景:从excel表中获取请求url.请求数据.请求类型.预期结果 因此,需要学会如何使用python从excel获取这些信息 #coding=utf-8 import xlrd #创建对象时,获取对应excel 表格 #读取Excel行数 #获取单元格内容 class OperationExcel: def __init__(self

  • python爬取内容存入Excel实例

    最近老师布置了个作业,爬取豆瓣top250的电影信息.按照套路,自然是先去看看源代码了,一看,基本的信息竟然都有,心想这可省事多了.简单分析了下源代码,标记出所需信息的所在标签,ok,开始干活! 鉴于正则表达式的资料已经看了不少,所以本次除了beautifulsoup外,还有些re的使用,当然,比较简单.而爬到信息后,以往一般是存到txt文件,或者数据库中,老是重样的操作,难免有些'厌倦'.心想,干嘛不存到Excel表呢?对啊,可以存到Excel表. 环境准备:pip install openp

  • Python获取excel内容及相关操作代码实例

    Python没有自带openyxl,需要安装: pip install openyxl 打开excel文档: openyxl.load_workbook(excel地址) - 打开现有excel文件 openyxl.Workbook() - 新建一个excel文件 返回一个工作博对象 import openpyxl wb = openpyxl.load_workbook("test.xlsx") print(type(wb)) # <class 'openpyxl.workboo

  • Python 线程池模块之多线程操作代码

    1.线程池模块 引入 from concurrent.futures import ThreadPoolExecutor 2.使用线程池 一个简单的线程池使用案例 from concurrent.futures import ThreadPoolExecutor import time pool = ThreadPoolExecutor(10, 'Python') def fun(): time.sleep(1) print(1, end='') if __name__ == '__main__

  • 详解Python中键盘鼠标的相关操作

    目录 一.前言 二.pyautogui模块 三.鼠标相关操作 1.鼠标移动 2.获取鼠标位置 3.鼠标点击 4.按松鼠标 5.拖动窗口 6.上下滑动 7.小程序——鼠标操控术2.0 8.小程序——连点器 四.键盘相关操作 1.按键的按松 2.键入字符串 3.热键 4.小程序——轰炸器 5.小程序——520个我爱你 五.尾声 一.前言 恭喜你,学明白类,你已经学会所有基本知识了. 这章算是一个娱乐篇,十分简单,了解一下pyautogui模块,这算是比较好学还趣味性十足的,而且可以做许多小程序. 本

  • java把excel内容上传到mysql实例代码

    mysql 表列名 num1,num2,num3,num4,num5,num6 表名Excle 上传的方法 package com.web.connection; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.loggi

  • python基于FTP实现文件传输相关功能代码实例

    这篇文章主要介绍了python基于FTP实现文件传输相关功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本实例有文件传输相关功能,包括:文件校验.进度条打印.断点续传 客户端示例: import socket import json import os import hashlib CODE = { '1001':'重新上传文件' } def file_md5(file_path): obj = open(file_path,'rb

  • 浅析python redis的连接及相关操作

    redis简介 Redis是一个开源的使用ANSIC语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.是一个非关系型数据库,经常会用作缓存,消息中间件的操作 redis优势 速度快,因为数据存在内存中 支持丰富数据类型,支持字符串,哈希表,列表,集合,有序集合 支持事务,操作都是原子性 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除 1.redis连接.及存取值 import redis r = redis.Redis(h

  • python 获取当前目录下的文件目录和文件名实例代码详解

    os模块下有两个函数: os.walk() os.listdir() # -*- coding: utf-8 -*- import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 print(files) #当前路径下所有非目录子文件 输出格式为: 当前文件目录路径 当前路径下子文件目录(若存在, 不存在则为 []

  • python实现excel公式格式化的示例代码

    之前跟一些小伙伴有个讨论: 大概就是很多跟数据打交道的朋友都面对过很复杂的excel公式,有时嵌套层数特别多,肉眼观看很容易蒙圈. 有了这样的需求,我就有了解决问题的想法,说干就干,于是一个比较牛逼的excel公式格式化的工具就出现了. 效果体验 先看看效果吧: =IF(C11>100%*C4,IF(C11<=200%*C4,C11*50%-C4*15%,C11*60%-C4*35%),IF(C11<=C4*50%,C11*30%,C11*40%-C4*5%)) 的格式化结果是: =IF

  • python获取淘宝服务器时间的代码示例

    然但是,这个只能获取到秒,没法到毫秒.我暂时不知道该咋解决 代码 import requests import time while True: class timeTaobao(object): r1 = requests.get(url='http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp', headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)

  • Python获取百度热搜的完整代码

    好久没写了,就把上课做的一个小东西拿出来分享一下吧. 百度网页截图如下 ↓↓↓ 程序运行输出结果截图 ↓↓↓ 上代码 ↓↓↓ from lxml import etree from lxml import html import requests headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36'}

随机推荐