拓冰建站拓冰建站
首页 / 资讯中心 / 正文

python openpyxl rows 气炸了!Python openpyxl rows取一行像切菜,取一列却像上刑?

前言话外如何取某一列这个真的是气死我气死我气死我拉依然记录学习使用属于昨天内容的进阶版要是想进行基础操作, 像是那种创建excel的, 还有创建sheet的操作, 那就能够去点击下面那个链接哟~基础操作其一, 创建.xlsx文件, 豆包的戳苏的博客, CSDN博客。取某一行首先我们快速创建一个表格from openpyxl import Workbook from openpyxl import load_workbook wb Workbook() # pay attention to the first letter sheet_2 wb.create_sheet(sheet_2) for i in range(1, 20): for j in range(1, 20): sheet_2.cell(i, j, valuej*i)数据够多了。此刻, 我们得晓得, 行以及列是如何组建而成的。接下来插播一段手动录入数据的代码, 此代码与其他内容毫无关联, 仅仅是为了区分行和列的差异而已。rows ( (998, 997, 996), (787, 988, 876), (233, 445, 786) ) for row in rows: sheet.append(row)依据自身输入数据来创建excel表格能够明白, 每一行都是一个元组, 每一列并非元组它属于一个。这个认知非常重要因此, 于获取全部行之际, 颇为简易, 我们仅需对表格展开一次遍历, 从而获取单个元组, 接着对该元组再度展开遍历, 进而获取单个对象, 并且获取其值。这个非常简单两次迭代即可搞定就不放代码la。可以选择直接print也可以创建列表放在列表里。要是想让列表呈现出好看的样子, 那就去创建两个列表, 让它们组合形成一个二位列表……这就有点类似拉嘿嘿串台那种情况了。我要输出某一行的值for i in sheet_2[5]: print(i.value, end\t) print() 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 注意这里我输入的是5他输出的是第五行。和中index的取值不一样, 此处在这输入0, 会出现报错情况。原因在于行列皆是从1起始的。取某一列行是一个元组输出很方便那么列怎么办呢如果上述代码会直接报错。我们可以先尝试输出全部的“列”list1 [] for col1 in sheet_2.columns: list_1 [] for col_1 in col1: list_1.append(col_1.value) list1.append(list_1) print(list1) print(list1[0])list1是二维列表是二维列表中的一维列表。如果想要输出某一行可以直接利用index。然而这般情形是极其繁难的, 一旦数据量繁多, 那么其运作速率就是很迟缓的, 可否仅是纯粹地形成输出单列呢。能。sheet_2_col tuple(sheet_2.columns) for i in range(0, 4): for j in sheet_2_col[i]: print(j.coordinate, j.value, end\t) print()以上我选取的是从第1列到第4列, 也就是: A列至D列, 输出的是它们的标号加上值。然而为啥我写上了0呢? 刚刚不是才说, 不存在0的情况吗?因为我把“列”变成了元组。元组可以有0。事实上, 这个办法于应对多数据之际存有弊端, 我们瞧瞧下面的方法。for i in sheet_2.rows: for j in i: if A in j.coordinate: print(j.coordinate, j.value, end\t) print()这里只输出了A列。依然需要遍历一遍才行。应用excel里的函数for i in range(1, 20): sheet_2[fT{i}] fAVERAGE(A{i}:S{i}) sheet_2[fU{i}] fSUM(A{i}:S{i}) sheet_2[V1] AVERAGE sheet_2[W1] Sum for i in range(2, 20): sheet_2[fV{i}] fAVERAGE(B{i}:S{i}) sheet_2[fW{i}] fSUM(B{i}:S{i})要留意上面存在着诸多特别细微细节之处, {i}用于实现占位功能, f指的是在excel当中所出现的那个f, 需加以注意的是, 引号被放置于等号的前方位置如果列表头要添加文字就是很简便的那种, 直接去更改单元格当中的内容, 并且要注留意公式能够容纳数据的范畴才行。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门