python python导入openpyxll生成了worksheet的类,为啥没有任何方法?见下图。

上一篇,我们简要介绍了openpyxl及其安装过程,这一篇我们学习使用openpyxl处理Excel的具体过程,力争涵盖大多数官方文档中相关内容,对这一知识点进行简单的汇总。一、学习目标(一)openpyxl的具体使用。通过Excel文件的打开、读取、编辑、保存等内容,掌握该模块具体使用方法。(二)通过具体业务流程,掌握Workbook、Worksheet、Cell的常用属性和方法。(三)通过一个实战项目,掌握openpyxl的具体使用方法。二、学习内容打开Python编辑器进行练习,要想熟练掌握openpyxl,建议下面的内容多次进行练习掌握。(一)创建Excel文件1.创建Excel文件from openpyxl import Workbookwb = Workbook()wb为一个Workbook对象,而这个对象的属性我们还没有具体定义,还在内存中,通过save()方法(后面学习),我们将工作簿对象保存在本地。我们保存的这个工作簿中默认只有一张名为”Sheet”的工作表。除此以外,什么都没有……2.打开已有的Excel文件from openpyxl import load_workbookwb = load_workbook(‘test.xlsx’)我们利用load_workbook()方法打开一个Excel文件,该方法还是返回了一个Workbook对象。(二)获得活动工作表当然,获得活动的工作表之前,如果我们想要知道工作簿中具体有多少个工作表呢?代码如下:list_ws = wb.get_sheet_names()list_ws是一个列表,元素为工作簿wb中所有的工作表名称。如果要返回所有的工作表对象,则使用:wb.worksheets如何获得活动的工作表(即当前工作表)current_ws = wb.get_active_sheet()current_ws返回一个当前活动的工作表。(三)创建一个工作表ws = wb.create_sheet(index=0, title=’ws name’)不带参数,默认index为0ws = wb.create_sheet(“ws name”)可以设置表格的颜色、标题等内容ws.title = ‘ws name change’ws.sheet_properties.tabColor = “A78B27”此外,还可以获得表格的以下几个常用属性:ws.dimensions:表格的大小,这里的大小是指含有数据的表格的大小,即:左上角的坐标:右下角的坐标,空表返回'A1:A1'。ws.min_row:表格的最小行ws.max_row:表格的最大行ws.min_column:表格的最小列ws.max_column:表格的最大列ws.rows:按行获取单元格(Cell对象) - 生成器columns:按列获取单元格(Cell对象) - 生成器freeze_panes:冻结窗格values:按行获取表格的内容(数据) - 生成器(生成器和窗口冻结见下文)(四)创建一个工作表的副本sourceSheet = wb.activetargetSheet = wb.copy_worksheet(sourceSheet)(五)操作Excel数据(Cell)1.访问一个单元格c = ws[‘A4’] #访问a4单元格2.一个单元格赋值ws[‘A4’]= 4c = ws.cell(row=4, column=1, value=4)内存中创建工作表,不包括单元格,单元格是首次访问时才创建的3.访问多个单元格(1)范围内的单元格使用切片处理cellRange = ws[‘A1’:’E10’]范围可以获得同样的行或者列colC = ws[‘B’] # 获得C列数据colRange = ws[‘B’:’E’] # 获得B列到E列数据rowD = ws[10] # 获得第10行数据rowRange = ws[5:10] # 获得5-10行数据(2)元素遍历①行遍历使用Worksheet的iter_rows()方法for row in ws.rows(min_row=1,max_row=12,min_column=1,max_column=12):for cell in row:print(cell)min_row、max_row、min_column、max_column设定iter_rows的行范围。②列遍历使用Worksheet的iter_cols()方法for col in ws.cols(min_row=1,max_row=12,min_column=1,max_column=12):for cell in col:print(cell)③遍历所有的行ws.rows或遍历所有的列ws.columnsprint(tuple(ws.rows))print(tuple(ws.columns))4.单元格数据存储一旦我们有了一个 Cell对象,我们就可以分配一个值:c.value = 'hello, world' # 可以是字符串类型c.value = 2.25 # 可以使浮点数类型您还可以使类型和格式推理:wb = Workbook(guess_types=True)c.value = '15%' # 百分比c.value = datetime.datetime.now() # datetime类型c.value = '21.32' # 将浮点数类型变成字符串赋值可以看出单元格存储的数据是多种类型的。(六)Excel文件保存wb = Workbook()wb.save(excel_name)注:此操作将覆盖源文件没有提示。三、实战演示创建程序,从命令行接受数字M、N,N表示Excel中电子表的个数(电子表命名方式为“Sheet1、Sheet2……SheetM”),M表示在活动的Excel电子表格中创建一个M×M的乘法表。然后将该Excel工作簿保存在本地。不赘述,直接上代码。import openpyxldef create_sheet_cell(nSheet, nCell):wb = openpyxl.Workbook()for n in range(nSheet):wb.create_sheet(index=n, title="Sheet" + str(n+1))currentSheet = wb.activefor r in range(1, nCell+1):for c in range(1, nCell+1):cell = currentSheet.cell(row=r, column=c, value= r * c)wb.save("test.xlsx")if __name__ == "__main__":nSheet = int(input("输入电子表格的个数(整数):"))nCell = int(input("输入乘法表的最大值(整数):"))create_sheet_cell(nSheet, nCell)程序执行成功程序执行成功四、总结本节介绍了Workbook、Worksheet、Cell三个对象的基本操作方式,重点是几个常用的函数,这对于使用openpyxl操作Excel是基础,要熟练掌握。下篇内容对openpyxl处理单元格的属性和样式进行学习。可爱的Python未完待续!}
《python编程快速上手》中的第12章:处理Excel电子表格书中提到的获取最大行的方法是:get_highest_row(),获取最大列的方法是:get_highest_row()。多次比对书中的代码后发现,语法上没有任何错误。在本站发现了解决的办法。https://blog.csdn.net/gaifuxi9518/article/details/80570746get_highest_row()和get_highest_column()在最新版的openpyxl模块中已经被删除了取而代之的是max_row和max_column两个方法。代码一import openpyxlwb= openpyxl.load_workbook(‘winddata.xlsx’)wb.get_sheet_names()sheet=wb.get_sheet_by_name(‘rawdata’)sheet.max_column()报错 TypeError: ‘int’ object is not callable代码二import openpyxlwb= openpyxl.load_workbook(‘winddata.xlsx’)wb.get_sheet_names()sheet=wb.get_sheet_by_name(‘rawdata’)sheet.max_column正确参考资料作者:向东的笔记本来源:CSDN原文:https://blog.csdn.net/gaifuxi9518/article/details/80570746版权声明:本文为博主原创文章,转载请附上博文链接!}

我要回帖

更多关于 python导入openpyxl 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信