Python Openpyxl快速入门教程

PythonOpenpyxl快速入门教程

1. 欢迎使用Anaconda和Spyder进行python开发,本身已经为我们安装好了openpyxl库。所以无需另外安装该库了。

2. 在使用前,需要导入openpyxl库:import openpyxl

3. 入门范例:

 from openpyxl import Workbook

 wb=Workbook()#创建一个工作簿

 ws=wb.active#获取工作的激活工作表

 ws['A1']=42#在A1中插入内容

 ws.append([1,2,3])#这里其实是在第二行插入了3个数字,占用了三个单元格,即’A2’=1 ‘B2’=2 ‘C2’=3

 import datetime

 ws['A2']=datetime.datetime.now()#在A2中插入了当前时间,把上一句的那个1挤掉了

 wb.save('sample.xlsx')#保存到当前目录


4. 如何读xlsx文件:

●  使用:

 fromopenpyxl import load_workbook

 wb=load_workbook(filename)

 这个wb可以理解成一个在内存中的虚拟的xlsx表格。

 函数原型:

 openpyxl.reader.excel.load_workbook(filename,read_only=False, use_iterators=False, keep_vba=False,  guess_types=False, data_only=False) 

 read_only: 表明是只读模式,这会使读取速度更快

 use_iterators:默认采用只读模式,所有的worksheet将openpyxl.worksheet.iter_worksheet.IterableWorksheet类型的它的特点是跳过了empty cells 


●  读取sheet:

 ws=wb[sheetname]

 ws=wb.get_sheet_by_name(sheetname)

 用wb.get_sheet_names()可得到sheet名字

 注意,读取sheet返回的是一个列表,取值时要用value,如:

 x=[]

 for i in sheet["B"]:

  x.append(i.value)

 # 这样就把B列的所有行的数据读入到x这个list中了。


  逐行读取:

 ws.iter_rows(range_string=None, row_offset=0, column_offset=0)

参数解析:

 range-string(string):单元格的范围:例如('A2:D5')

 row_offset:添加行

 column_offset:添加列

 返回一个生成器,

注意取值时要用value,例如:

 for x in ws.iter_rows():

 print x[0].value


  读连续单元格

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


  读指定的单元格

 ws.cell('B12').value

 ws.cell(row=12,column=2).value


  读所有单元格数据

 ws.get_cell_collection() #ws为读取到的sheet


5. 如何写xlsx文件:

  写一行:

 ws.append(iterable) # 添加一行到当前sheet的底部另起的新的一行

其中,iterable必须是list,tuple,dict,range,generator类型的。

1)如果是list,将list从头到尾顺序添加。

2)如果是dict,按照相应的键添加相应的键值。

 append([‘A1’, ‘B1’, ‘C1’])

 append({‘A’ : ‘This is A1’, ‘B’ : ‘This is B1’})

 append({1 : ‘This is A1’, 3 : ‘This isC1’})


●  写一个单元格:

 ws['B5'] = 5 # ws为读取到的sheet

注意:此时数据并还没写入到文件,它只是写入到内存中。需要保存文件,才能完成文件的写入:

 wb.save(filename)


# openpyxl官方教程:http://openpyxl.readthedocs.io/en/default/index.html

 

猜你喜欢

转载自blog.csdn.net/qq_33353186/article/details/79191069