精华内容
下载资源
问答
  • openpyxl模块安装及使用

    万次阅读 多人点赞 2019-04-11 09:28:01
    openpyxl模块: 是用于解决Excel(WPS等均可使用)中扩展名为xlsx/xlsm/xltx/xltm的文件读写的第三方库。xls文件要使用xlwt 、wlrd两个模块。 主要概念: Workbooks,Sheets,Cells。Workbook就是一个excel工作簿...

    openpyxl模块:
    是用于解决Excel(WPS等均可使用)中扩展名为xlsx/xlsm/xltx/xltm的文件读写的第三方库。xls文件要使用xlwt 、wlrd两个模块。

    主要概念:
    Workbooks,Sheets,Cells。Workbook就是一个excel工作簿;Sheet是工作簿中的一张工作表;Cell就是表的一个单元格。openpyxl不管读写都是:打开Workbook,定位Sheet,操作Cell。

    安装:
    cmd下pip install openpyxl安装。

    操作:
    在内存中新建一个工作薄:

    >>> from openpyxl import Workbook
    >>> wb = Workbook()
    

    保存工作薄:

    >>> wb = Workbook()
    >>> wb.save('test.xlsx')						#必须提交保存才能显示操作产生的效果,此操作不能在文件打开(指双击文件打开)时进行,必须先关闭。
    

    读写已经存在的文件sheet:

    >>> from openpyxl import load_workbook
    >>> wb2 = load_workbook('test.xlsx')			#加载工作簿
    >>> print(wb2.sheetnames)  						
    ['Sheet2', 'New Title', 'Sheet1']
    

    获取默认工作表:

    >>> ws = wb.active
    

    通过指定的工作表名获取工作表对象:

    >>> ws3 = wb["New Title"]						#建议使用
    

    或者

    >>> ws = wb.get_sheet_by_name('New Title')   	
    

    创建新的工作表:

    >>> ws1 = wb.create_sheet("Mysheet") 			#默认在最后面创建一个Mysheet工作表,参数也可为空,默认为sheet*
    

    或者

    >>> ws2 = wb.create_sheet("Mysheet", 0) 		#在0索引位置插入一个工作表,此时插入的表名不可为空
    

    复制工作表:

    >>> source = wb.active
    >>> target = wb.copy_worksheet(source)
    

    删除工作表(删除后新建,相当于清空工作表):

    wb.remove(wb['Sheet'])							#wb.remove_sheet()已弃用
    

    del wb['Sheet']
    

    修改工作表名称:

    ws.title = "New Title"
    

    显示所有工作表名称:

    >>> print(wb.sheetnames)
    ['Sheet2', 'New Title', 'Sheet1']
    >>> for sheet in wb:
    ...     print(sheet.title)
    

    表中的数据操作:

    >>> from openpyxl import Workbook
    >>> wb = Workbook()
    >>> ws = wb.active
    

    修改表中的数据:

    >>> ws['A4'] = 4
    

    或者

    >>> d = ws.cell(row=4, column=2, value=10)		#第4行第2列值为10
    >>> c = ws['A4']
    >>> c.value = 'hello, world'
    >>> print(c.value)
    'hello, world'
    >>> d.value = 3.14
    >>> print(d.value)
    3.14
    

    获取行列:

    ws.max_row 										#获取最大行数
    ws.max_column									#获取最大列数
    ws.rows											#获取所有行
    ws.columns										#获取所有列
    

    列的字母与数字互转:

    from openpyxl.utils import get_column_letter, column_index_from_string 			
    # 根据列的数字返回字母: 	
    print(get_column_letter(2)) 					#结果为B
    #根据字母返回列的数字: 
    print(column_index_from_string('D'))  			#结果为4
    

    获取单元格对象:

    >>> c = ws['A4']
    

    切片多选(获取多个单元格):

    >>> cell_range = ws['A1':'C2']
    

    选择整行、整列:

    >>> colC = ws['C']								#选择C列
    >>> col_range = ws['C:D']						#选择C、D列
    >>> row10 = ws[10]								#选择第10行
    >>> row_range = ws[5:10]						#选择5-10行
    

    获取单个单元格中的数据:

    >>> print(ws['A2'].value)
    

    遍历获取指定区域的数据:

    >>> for i in range(1, 3):
    ... 	for j in range(1, 3):
    ... 		ws.cell(row=i, column=j)
    ... 
    <Cell 'Sheet'.A1>
    <Cell 'Sheet'.B1>
    <Cell 'Sheet'.A2>
    <Cell 'Sheet'.B2>
    

    将数据data写入Excel:此处data是由元组组成的列表数据

    rows = len(data)                           		#获取数据总行数
    columns = len(data[0])                 			#获取数据总列数
    for row in range(3, rows+3):  	   				#从第3行开始,前2行是表头
    	for column in range(1, columns+1):
    		zhi = data[row-3][column-1]
            ws.cell(row, column, value=zhi)    		#给单元格赋值
    

    合并、取消合并单元格:

    ws.merge_cells('B1:G1')							#合并B1-G1单元格
    ws.unmerge_cells('B1:G1')						#取消合并的B1-G1单元格
    

    单元格样式:openpyxl的单元格样式由6种属性决定,每一种都是一个类。

    font(字体类):字号、字体颜色、下划线等
    fill(填充类):颜色等
    border(边框类):设置单元格边框
    alignment(位置类):对齐方式
    number_format(格式类):数据格式
    protection(保护类):写保护
    

    单元格默认样式如下:

    >>> from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font
    >>> font = Font(name='Calibri',			      	#字体
    ...                 size=11,					#大小
    ...                 bold=False,					#加粗
    ...                 italic=False,				#斜体
    ...                 vertAlign=None,				#纵向对齐
    ...                 underline='none',			#下划线
    ...                 strike=False,				#删除线
    ...                 color='FF000000')			#颜色
    #下面2种填充方法均有可能不显示填充色:
    >>> fill = PatternFill(fill_type='solid',		#填充
    ...                 start_color='FFFFFFFF',		#前景色
    ...                 end_color='FF000000')		#背景色
    >>> fill = PatternFill(fill_type='solid', bgColor='FFFFFF', fgColor='33FF00')       #可显示背景色bgColor为33FF00(但此值为前景色fgColor的值),无法显示前景色
    >>> border = Border(left=Side(border_style='thin',  
     ...                           color='FF000000'),	#边框,必须导入Side函数,且颜色必须是FF0000格式
    ...                 right=Side(border_style='thin',
    ...                            color='FF000000'),
    ...                 top=Side(border_style='thin',
    ...                          color='FF000000'),
    ...                 bottom=Side(border_style='thin',
    ...                             color='FF000000'),
    ...                 diagonal=Side(border_style='thin',
    ...                               color='FF000000'),
    ...                 diagonal_direction=0,
    ...                 outline=Side(border_style='thin',
    ...                              color='FF000000'),
    ...                 vertical=Side(border_style='thin',
    ...                               color='FF000000'),
    ...                 horizontal=Side(border_style='thin',
    ...                                color='FF000000')
    ...                )
    >>> alignment=Alignment(horizontal='center',		#水平方向,left、center、right等
    ...                     vertical='bottom',			#垂直方向,center、top、bottom等
    ...                     text_rotation=0,			#文本旋转角度?
    ...                     wrap_text=False,			#自动换行
    ...                     shrink_to_fit=False,		#缩小填充
    ...                     indent=0)					#缩进
    >>> number_format = 'General'						#数据格式
    >>> protection = Protection(locked=True,			#锁定
    ...                         hidden=False)			#隐藏
    

    以上几种样式(字体、填充、边框、位置和保护)实例一旦被创建,实例的属性就不可更改,只能重新创建实例。

    PatternFill填充类型:fill_type若没有指定类型,则后续参数都无效。

    'none'、'solid'、'darkDown'、'darkGray'、'darkGrid'、'darkHorizontal'、'darkTrellis'、'darkUp'、'darkVertical'、'gray0625'、'gray125'、'lightDown'、'lightGray'、'lightGrid'、'lightHorizontal'、'lightTrellis'、'lightUp'、'lightVertical'、'mediumGray'
    

    border_style类型:border_style若没指定类型,则后续参数都无效。

    'thin','dashDot','dashDotDot','dashed','dotted','double','hair','medium','mediumDashDot','mediumDashDotDot','mediumDashed','slantDashDot','thick'
    
    >>> from openpyxl.styles import Font, Color
    >>> from openpyxl.styles import colors
    >>> from openpyxl import Workbook
    >>> wb = Workbook()
    >>> ws = wb.active
    >>> a1 = ws['A1']
    >>> d4 = ws['D4']
    >>> ft = Font(color=colors.RED)
    >>> a1.font = ft
    >>> d4.font = ft
    >>> a1.font.italic = True 							#不会生效,样式实例一旦创建,实例的属性就不可改变
    >>> # 若要改变样式,必须新建样式实例
    >>> a1.font = Font(color=colors.RED, italic=True) 	#创建字体实例(红色、斜体,其他属性默认)
    

    复制样式:样式可以被复制

    >>> from openpyxl.styles import Font
    >>> ft1 = Font(name='Arial', size=14)
    >>> ft2 = ft1.copy(name="Tahoma") 					#复制时指定字体为“Tahoma”,其他属性均复制自ft1
    >>> ft1.name
    'Arial'
    >>> ft2.name
    'Tahoma'
    >>> ft2.size
    14.0
    

    基本字体颜色:字体颜色有一些颜色常量,可以直接调用

    from openpyxl.styles import Font
    from openpyxl.styles.colors import RED
    font = Font(color=RED)
    font = Font(color="00FFBB00")
    

    也可以按索引创建实例:

    from openpyxl.styles.colors import Color
    c = Color(indexed=32)
    c = Color(theme=6, tint=0.5)
    

    V2.3.5版本中颜色必须使用“00XXXXXX”格式,不能使用“#XXXXXX”格式。如果颜色不生效请查看版本。

    应用样式:可以直接应用到单元格:

    from openpyxl.workbook import Workbook
    from openpyxl.styles import Font, Fill
    wb = Workbook()
    ws = wb.active
    c = ws['A1']
    c.font = Font(size=12)
    #可以对整行整列设置样式,前提是单元格已创建。
    col = ws.column_dimensions['A']
    col.font = Font(bold=True)
    row = ws.row_dimensions[1]
    row.font = Font(underline="single")
    

    数据格式:属性number_format的值是字符串类型,不为对象,直接赋值即可。openpyxl内置了一些数据格式,查看openpyxl.styles.numbers,也支持excel自定义格式,以下两种方式效果相同:

    # 使用openpyxl内置的格式
    from openpyxl.styles import numbers
    ws.cell['D2'].number_format = numbers.FORMAT_GENERAL
    ws.cell(row=2, column=4).number_format = numbers.FORMAT_DATE_XLSX15
    # 直接使用字符串
    ws.cell['D2'].number_format = 'General'
    ws.cell(row=2, column=4).number_format = 'd-mmm-yy'
    

    编辑页面设置:

    from openpyxl.workbook import Workbook
    wb = Workbook()
    ws = wb.active
    ws.page_setup.orientation = ws.ORIENTATION_LANDSCAPE	#方向-竖屏(LANDSCAPE),横屏(PORTRAIT)
    ws.page_setup.paperSize = ws.PAPERSIZE_TABLOID 			#纸张尺寸
    ws.page_setup.fitToHeight = 0                  			#自适应高度
    ws.page_setup.fitToWidth = 1                   			#自适应宽度
    

    编辑打印选项:

    from openpyxl.workbook import Workbook
    wb = Workbook()
    ws = wb.active
    ws.print_options.horizontalCentered = True				#水平居中
    ws.print_options.verticalCentered = True       			#垂直居中
    

    插入列:

    import openpyxl
    wb = openpyxl.load_workbook(r"test.xlsx")				#读取原表
    ws = wb.active
    lie = 2													#在第几列后面插入
    n = 5													#插入几列
    wb2 = openpyxl.Workbook()								#创建新表
    ws2 = wb2.active
    ws2.title = 'new'										#设置新表名
    for col in range(1, ws.max_column+1):
    	for ro in range(1, ws.max_row+1):
    		if col<=lie:
    			ws2.cell(row=ro, column=col).value=ws.cell(row=ro, column=col).value
    		else:
    			ws2.cell(row=ro, column=col+n).value=ws.cell(row=ro, column=col).value
    wb2.save(r"test.xlsx")									#勿忘保存
    

    插入行:

    wb = openpyxl.load_workbook(r"test.xlsx")				#读取原表
    ws = wb.active
    hang = 2												#在第几行后面插入
    n = 5													#插入几行
    wb2 = openpyxl.Workbook()								#创建新表
    ws2 = wb2.active
    ws2.title = 'new'										#设置新表名
    for ro in range(1, ws.max_row+1):
    	for col in range(1, ws.max_column+1):
    		if ro<=hang:
    			ws2.cell(row=ro, column=col).value=ws.cell(row=ro, column=col).value
    		else:
    			ws2.cell(row=ro+n, column=col).value=ws.cell(row=ro, column=col).value
    wb2.save(r"test.xlsx")									#勿忘保存
    

    其它第三方库:针对电子表格的第三方库,除了openpyxl之外,还有xlsxwriter:针对Excel 2010格式,如.xlsx;xlrd、xlwt用来处理.xls格式的电子表格。

    展开全文
  • 这篇文章主要介绍了Python openpyxl模块原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 此模块不是Python内置的模块需要安装,安装方法如下 pip...
  • python openpyxl模块的安装

    万次阅读 2018-08-05 17:23:50
    一句话DNS有问题:安装之前你可以考虑 先 : pip search openpyxl 然后: pip install openpyxl 应该没问题了,如果还有欢迎留言

    一句话DNS有问题:安装之前你可以考虑
    先 :
    pip search openpyxl
    然后:
    pip install openpyxl
    应该没问题了,如果还有欢迎留言

    展开全文
  • python离线安装openpyxl模块

    千次阅读 2019-12-03 13:44:28
    最近Python项目需要用openpyxl对excel进行处理,引用到了openpyxl模块。但是客户的环境没有网,无法用pip安装openpyxl。因此需要离线安装,记录下遇到的问题及解决的办法。 2.过程 能联网的话用pip,一条命令即可...

    1.前言

    最近Python项目需要用openpyxl对excel进行处理,引用到了openpyxl模块。但是客户的环境没有网,无法用pip安装openpyxl。因此需要离线安装,记录下遇到的问题及解决的办法。

    2.过程

    能联网的话用pip,一条命令即可进行安装:

    pip install openpyxl
    

    离线方式只能下载安装包进行安装。
    此处下载了openpyxl,解压,到解压后的目录,用

    python setup.py install
    

    进行安装。
    报错:No module named jdcal
    于是下载jdcal用同样的方式进行安装。结果又报错:
    error Could not find suitable distribution for Requirement.parse<‘et-xmlfile’>
    然后接着下载et_xmlfile用同样的方式进行安装。
    最后安装openpyxl,成功。

    3.总结

    离线安装openpyxl方式:
    1.下载jdcal安装。
    2.下载et_xmlfile安装。
    3.下载openpyxl安装。
    安装方法为:
    解压下载的文件,到解压后setup.py所在目录,执行命令

    python setup.py install
    

    即可安装相应模块。

    展开全文
  • 需解决以下问题: 1、提示版本错误 2、提示program files\python3.7\lib\site-packages\pip_vendor\six.py __new__方法错误 解决方法: 1、使用python -m pip install --upgrade pip在cmd中进行升级 ...

    需解决以下问题:
    1、提示版本错误
    2、提示program files\python3.7\lib\site-packages\pip_vendor\six.py __new__方法错误

    解决方法:
    1、使用python -m pip install --upgrade pip在cmd中进行升级
    2、升级之后找到program files\python3.7\lib\site-packages\pip_vendor\six.py文件,将__new__方法进行修改

    异常图片:
    在这里插入图片描述提示six.py文件有错误

    需修改six.py,将3,7 修改为3,20
    在这里插入图片描述

    展开全文
  • -U后面写模块/package的名字 -i后面附上网页链接 这是个镜像网站 可以科学上网的就直接写外国网站就行 还有别的镜像网站 比如清华的 https://pypi.tuna.tsinghua.edu.cn/simple 运行之后是这样的:
  • 在日常的测试工作中,我们的测试... openpyxl是一个开源项目,openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到其它库(如:xlrd、xlwt等),这是openpyxl比较其他模块的
  • python处理Excel(openpyxl模块的使用)

    千次阅读 2019-11-07 18:11:45
    Tips:openpyxl模块只支持.xlsx后缀的Excel表格,.xls后缀别的表格暂不支持,提供以下两种解决思路: 1.打开.xls后缀的表格另存为.xlsx格式。 2.使用xlrd模块读,xlwt模块写(不推荐这种方法,没有openpyxl模块...
  • import openpyxl >>> wb = openpyxl.Workbook() #创建一个工作簿 >>> ws = wb.active #获取第一个sheet >>> ws.title 'Sheet' >>> ws['A1'] = 520 #写入数字 >>> ws.append([1,2,3]) #写入多个单元格 >>> import ...
  • openpyxl模块离线安装 背景: 公司的防火墙限制,无法使用pip在线安装,开墙的审批流程较为繁琐,故采取离线安装的方式。 步骤如下: 1、官网https://pypi.org/project/jdcal/#files下载jdcal安装压缩包; 2、 官网...
  • openpyxl模块

    2020-06-06 20:48:48
    Python_Openpyxl 1. 安装 pip install openpyxl 2. 打开文件 ① 创建 from openpyxl import Workbook # 实例化 wb = Workbook() # 激活 worksheet ws = wb.active ② 打开已有 >>> from ...
  • 利用openpyxl模块操作excel表 写入功能 from openpyxl import Workbook from openpyxl import load_workbook # 1.创建一个表格 wk = Workbook() # 1.1加载一个表格 wk = load_workbook(最新公司招聘信息.xlsx) # 2....
  • openpyxl模块基本用法

    2020-09-16 09:20:17
    openpyxl基本用法 From openpyxl import workbook 想要操作Excel首先要了解Excel 基本概念,Excel中列以字幕命名,行以数字命名,比如左上角第一个单元格的坐标为A1,下面的为A2,右边的B1。 openpyxl中有三个不同...
  • Python 的 openpyxl 模块可以让我们能读取和修改 Excel 文件。 首先让我们先理解一些 Excel 基础概念。 1 Excel 基础概念 Excel 文件也称做为工作簿。每个工作簿可以包含多个工作表(Sheet)。用户当前查看的表或...
  • 当使用pip install openpyxl下载openpyxl模块后使用vscode引用模块时出现不能使用的方法 前言:鄙人喜欢用中文比较多的编译器,所以选了vscode,不过先前也使用过pycharm,不过不是很习惯。但在解决用pip下载某个...
  • 由于工作中处理表格的工作居多,其中存在了大量的重复工作内容,...from openpyxl import load_workbook # 导入新格式Excel模块 # 打开新格式文档,只能打开xlsx格式,不能打开xls格式 lu_book = load_workbook(filena
  • Python中openpyxl模块基本用法

    千次阅读 多人点赞 2021-02-01 11:47:18
    在接口自动化测试中,对于测试数据通常采用Excel进行管理。openpyxl能够读取和修改.xls文件,在使用openpyxl前先要掌握三个对象,即:...openpyxl模块常用方法: 1.打开Excel: wb =openpyxl.load_workbook(“api
  • from openpyxl import load_workbook from openpyxl import workbook class Doexcel: def __init__(self,file_name,sheet_name): try: # self.file_name = file_name # self.sheet_name = sheet_name self....
  • python模块-csv模块与openpyxl模块

    千次阅读 2019-06-21 00:09:47
    csv模块的简单使用 csv格式存储数据,读写比较方便,易于实现,文件也会比Excel文件小。但csv文件缺少Excel文件本身的很多功能,比如不能嵌入图像和图表,不能生成公式,下面是基本的代码。 安装方法:window电脑...
  • openpyxl官方手册 教程 Tutorial 创建excel文件 Create a workbook There is no need to create a file on the filesystem to get started with openpyxl. Just import the Workbook class and start work: 开始使用...
  • python之openpyxl模块(excel管理)

    万次阅读 多人点赞 2018-09-10 12:57:59
    openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只支持读或者...
  • 最近Python项目需要用openpyxl对excel进行处理,引用到了openpyxl模块。但是客户的环境没有网,无法用pip安装openpyxl。因此需要离线安装,记录下遇到的问题及解决的办法。 2.过程 能联网的话用pip,一条命令即可进行...
  • 一个简答的使用助我们使用python简单操作excel标签!!! 1.openpyxl模块简介: ...(openpyxl模块安装:pip install openpyxl即可) openpyxl是一个开源项目,openpyxl模块是一个读写Excel 2010文档的Python库,...
  • import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读取sheet工作表名 print(wb.sheetnames) ws = wb.active #打印工作表行列数 print("表格共%d行,列数共%d列" %(ws.max_row,ws.max_column)) #...
  • Python-openpyxl模块练习

    2020-09-10 14:44:26
    公共模块引入: import openpyxl,sys from openpyxl.utils import get_column_letter 项目一: 创建程序,从命令行接受数字N,在一个Excel电子表格中创建一个N*N的乘法表执行方式:>>>python3 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,744
精华内容 2,297
关键字:

openpyxl模块下载