openpyxl基础知识合集

这几天学习openpyxl模块(version 2.6.),并在工作中做了个简单的处理日常工作的程序,把学到的东西归纳一下,以便跟大家分享,和以后自己复习。 不足之处望大家指出:

**目录:

  1. 建立表格、打开表格。
  2. 表格的坐标和值
>>> import openpyxl
>>> openpyxl.__url__
'https://openpyxl.readthedocs.io'   #官网文档
>>> openpyxl.__version__  #版本号2.6.3
'2.6.3'

1、建立表格、打开表格。

>>> from openpyxl import Workbook
>>> wb = Workbook() #注意此处为大写Workbook,并且要先导入该模块
>>> wb.sheetnames
['Sheet']
>>> wb.create_sheet(title='example',index=0) #从索引处建立一个新工作薄
<Worksheet "example">
>>> wb.create_sheet(title='example1',index=2)
<Worksheet "example1">
>>> wb.sheetnames
['example', 'Sheet', 'example1']

>>> ws = wb.active #获取活动sheet工作表
>>> ws
<Worksheet "example">

当前工作表

>>> wb['example1'] #获取指定工作表
<Worksheet "example1">
>>> ws = wb[wb.sheetnames[1]] #从所有工作表的索引获取工作表
>>> ws
<Worksheet "Sheet">

删除工作表:(注意:wb[‘Sheet’]为<Worksheet “Sheet”>,删除时只能删除Worksheet对象)

>>> wb.remove(wb['Sheet'])
>>> wb.sheetnames
['example', 'example1']
以下将会报错:
>>> wb.remove('example')
ValueError: 'example' is not in list

如果指定找开某工作薄的话:

>>> wb = openpyxl.load_workbook(r'C:\example\test.xlsx') #从绝对路径打开
>>> wb.sheetnames
['example', 'Sheet', 'example1']
>>> wb = openpyxl.load_workbook(‘test.xlsx') #或者从相对路径打开

这样便获取了工作薄和工作江薄里的表

2. 表格的坐标和值

from openpyxl.utils import get_column_letter,get_column_interval,column_index_from_string

#指定列的开始和结束的名字,返回有序列表,无所谓大小写
>>> get_column_interval('A','c')
['A', 'B', 'C']

>>> get_column_letter(6)  #给定第几列,返回该列的字母
F
>>> column_index_from_string('S')  #给定列的字母,返回该列为多少列的数字
19
>>> c = ws['c1']  #ws是wb['example1'] 
>>> c.coordinate #返回该工作表中指定某个单元格的坐标 
'C1'

单元格赋值:

>>> ws['a1'] ='aaa'
>>> ws['a1']  #注意:这样只会返回该单元格的属性,这很重要,在遍历单元格的时间要注意
<Cell 'example1'.A1>
>>> type(ws['a1']) 
<class 'openpyxl.cell.cell.Cell'>

>>> ws['a1'].value #要获取该单元格的值,需要使用.value
'aaa'

比如:

for cell in ws['a1':'c3']:
	print(cell)
(<Cell 'example1'.A1>, <Cell 'example1'.B1>, <Cell 'example1'.C1>)
(<Cell 'example1'.A2>, <Cell 'example1'.B2>, <Cell 'example1'.C2>)
(<Cell 'example1'.A3>, <Cell 'example1'.B3>, <Cell 'example1'.C3>)

该方法返回一个包含分了行的元组,且为单元格的属性值,不是值。
要遍历单元格的值,需要这样:

>>> for cell in ws['a1':'c3']:
	    for i in cell:
		    print(i.value,end=' ')
	    print('')	
aaa None None 
None None None 
None None cccc 
>>> for i in range(5):
	    ws.append(range(20,30)) #批量加入后我们看下效果
>>> wb.save('test.xlsx') #保存(注意,保存时如果名字相同会不提醒且直接覆盖原文件)
                         #所以保存时最好换一个名字,如:test_copy.xlsx’
                         #如果需要覆盖保存,那先确保原来的excel文件为关闭的,否则报错
  PermissionError: [Errno 13] Permission denied: 'test.xlsx'

现在的工作表如图

内容太多,下一章归纳
3. 表格值的属性
4. 合并、拆分单元格
5. 字体属性
6. 单元格属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值