淘宝开店网站怎么做,360元网站建设,电商的网站怎么做的,torrentkitty磁力猫引擎0 前言在阅读本文之前#xff0c;请确保您已满足或可能满足一下条件#xff1a;请确保您具备基本的Python编程能力。请确保您会使用Excel。请确保您的电脑已经安装好Python且pip可用。请确保您已经读过前文#xff1a;如何使用Python操作Excel(一)LogicPanda#xff0c;公众… 0 前言在阅读本文之前请确保您已满足或可能满足一下条件请确保您具备基本的Python编程能力。请确保您会使用Excel。请确保您的电脑已经安装好Python且pip可用。请确保您已经读过前文如何使用Python操作Excel(一)LogicPanda公众号编程杂艺Python | 使用Python操作Excel文档(一)从如何使用Python操作Excel(一)中我们可以得到一个“example.xlsx”文件内容如图。本文会继续讲解openpyxl的用法。 1. 在工作表中插入/删除行/列对工作表的行或列进行操作时使用Worksheet类中的方法insert_row()delete_row(),insert_col(),delete_col()。from openpyxl import load_workbookimport openpxlwb load_workbook(example.xlsx)ws wb.get_sheet_by_name(demo)ws.insert_rows(1) # 在第一行前插入一行ws.insert_rows(1, 2) # 在第一行前插入两个ws.delete_rows(2) # 删除第二行ws.delete_rows(2, 2) # 删除第二行及其后边一行(共两行)ws.insert_cols(3) # 在第三列前插入一列ws.insert_cols(3, 2) # 在第三列前插入两列ws.delete_cols(4) # 删除第四列ws.delete_cols(4, 2) #删除第四列及其后边一列(共两列)wb.save(example.xlsx)2. 访问单元格在前文中我们讲到了如何访问单元格如ws[A1]ws[A1].value我们还可以使用行或列的方式访问ws[A][1].value # ws[A1].valuews[1][2].value # ws[C1].valuews[A] # 会返回元祖‘A’列中所有的内容ws[1] # 会返回元祖第1行中所有的内容 ws[1] (, , , , , , , , , , , , , , , , , , ) ws[A] (, , , , , , , , , , , , , , , , , , )PS我们还可用切片的方式来访问一个范围内的单元格。 ws[A1:B3] ((, ),(, ),(, )) ws[A1:B3][1][1].value 4 ws[A1:B3] ((, ),(, ),(, ))请留意两种切片的不同。还可以使用行切片或者列切片 ws[A:B]((, , , , , , , , , , , , , , , , , , ), (, , , , , , , , , , , , , , , , , , )) ws[1:2]((, , , , , , , , , , , , , , , , , , ), (, , , , , , , , , , , , , , , , , , ))3. 使用公式首先你要清晰的明白你要使用的公式是什么。同时你需要知道的是openpyxl能够在工作表中执行公式进行计算但是并不能在程序中打印公式的值 ws[A20]SUM(A1:A19) ws[A20].valueSUM(A1:A19) wb.save(formula.xlsx) # 请查看A20即便如此openpyxl却可以帮助你检查公式名是否正确 from openpyxl.utils import FORMULAE SUM in FORMULAE True当然你也可以用print(FORMULAE) 来看看都有什么公式可以用(与Excel并没有什么不一样)。4. 移动单元格使用ws.move_range()方法来移动单元格。ws.move_range(D4:F10, rows-1, cols2)会将单元格D4-F10向上移动1行想右移动两行。参数ows和cols用来控制单元格的移动方向。如果目标单元格有内容会被覆盖。5. 拆分/合并单元格使用ws.merge_cells()和ws.unmerge_cell()l来和合并拆分单元格。 ws.merge_cells(A2:D2) # 值为ws[A2]的值 ws[A2] # ws[A2].value # 2 ws[B2].value # 空 ws.unmerge_cells(A2:D2) # 值会回到ws[A2],B2:D2会为空。 ws.merge_cells(start_row2, start_column1, end_row4, end_column4) ws.unmerge_cells(start_row2, start_column1, end_row4, end_column4)6. 插入图片想要用openpyxl向工作表中插入图片需要安装Pillow库from openpyxl.drawing.image import Imageimg Image(logo.jpg) ws.add_image(img, A21)wb.save(img.xlsx)7. 折叠ws1 wb.create_sheet() # 新建一张表Sheetws1.column_dimensions.group(A,D, hiddenTrue) # 列折叠A-D列ws1.row_dimensions.group(1,10, hiddenTrue) # 行折叠 1-10行wb.save(group.xlsx)8. 只读模式与只写模式只读模式仅用来读取文档内信息不可写。wb load_workbook(filenameexample.xlsx, read_onlyTrue)wb.create_sheet(test.xlsx) # 会报错Traceback (most recent call last): File , line 1, in wb.create_sheet(test.xlsx) File D:\Python\lib\site-packages\openpyxl\workbook\workbook.py, line 194, in create_sheet raise ReadOnlyWorkbookException(Cannot create new sheet in a read-only workbook)openpyxl.utils.exceptions.ReadOnlyWorkbookException: Cannot create new sheet in a read-only workbook只写模式仅用来写入数据。wb Workbook(write_onlyTrue)ws wb.create_sheet()type(ws) # hasattr(ws,value) # falsehasattr(ws,title) # True即是说ws已经不是worksheet对象而是WriteOnlyWorksheet对象也没有value属性不可以读取单元格的值。这样做是为了让Python处理只有写入大量数据的情况更快。9.数字格式可以使用Cell对象的nember_format属性来查看单元格的数字样式。wb load_workbook(example.xlsx)ws wb.activews[A1].nember_format # General# 现在将单元格的数字格式设置为数值ws[A1].nember_format # 0.00_ # 可以在Python中修改数字格式如ws[A1].nember_format General# 单元格可以直接赋值时间日期类型的数据类型如ws[A1] datetime.datetime.now()ws[A1].value # datetime.datetime(2019, 6, 9, 19, 57, 40, 918556)# 可以用is_date属性判断单元格是否为日期类型的数据ws[A1].is_date10. 复习下今天内容今天的内容主要是及第一篇文章之后继续讲如何使用Python操作单元格和工作表。插入/删除行或列访问单元格的方法移动单元格合并/拆分单元格插入图像、使用公式折叠行/列使用数字格式只读和只写模式好了今天的内容就到这里了。我们下次见。如果您对本文或者本公众号感兴趣欢迎关注我的公众号留言您想看的内容在这里我们一起成长不止于编程