我的查询与作为我正在开发的解析脚本的一部分的函数有关。我正在尝试编写一个python函数来查找与excel中匹配值对应的列号。excel 是使用 openpyxl 即时创建的,它的第一行(从第 3 列开始)标题每跨 4 列合并为一个。在我随后的函数中,我正在解析一些要添加到与匹配标题对应的列中的内容。(附加信息:我正在解析的内容是blast+ 输出。我正在尝试创建一个汇总电子表格,其中每列中的命中名称以及命中、间隙、跨度和身份的子列。前两列是查询重叠群及其长度。 )
我最初为 xlrd 编写了一个类似的函数并且它起作用了。但是当我尝试为 openpyxl 重写它时,我发现 max_row 和 max_col 函数错误地返回了比实际存在的更多的行和列。例如,我有 20 行用于这个试验输入,但它报告为 82。请注意,我手动选择了空行和列,然后右键单击并删除了它们,如本论坛其他地方所建议的。这并没有改变错误。
def find_column_number(x):
col = 0
print "maxrow = ", hrsh.max_row
print "maxcol = ", hrsh.max_column
for rowz in range(hrsh.max_row):
print "now the row is ", rowz
if(rowz > 0):
pass
for colz in range(hrsh.max_column):
print "now the column is ", colz
name = (hrsh.cell(row=rowz,column=colz).value)
if(name == x):
col = colz
return col
Run Code Online (Sandbox Code Playgroud)
max_row 和 max_col 的问题已经在这里讨论过https://bitbucket.org/openpyxl/openpyxl/issues/514/cell-max_row-reports-higher-than-actual我在这里应用了这个建议。但是 …