Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyExcelerator或xlrd-如何查找/搜索给定少数列数据的行?_Python_Excel_Search_Pyexcelerator_Xlrd - Fatal编程技术网

Python pyExcelerator或xlrd-如何查找/搜索给定少数列数据的行?

Python pyExcelerator或xlrd-如何查找/搜索给定少数列数据的行?,python,excel,search,pyexcelerator,xlrd,Python,Excel,Search,Pyexcelerator,Xlrd,Python与EXCEL通信。。。我需要找到一种方法,以便在一行中查找/搜索给定的列数据。现在,我一行一行地扫描整行。。。如果有诸如查找/搜索/替换之类的功能,它将非常有用。。。。我在pyExcelerator或xlrd模块中没有看到这些功能。。我不想使用Win32 COM模块!它使我的工具基于windows 通过Python查找/搜索Excel行。。。。有什么想法吗?“现在,我一行一行地扫描整个行” 怎么了?“搜索”——在电子表格上下文中——是非常复杂的。搜索值?搜索公式?向下搜索行,然后跨列

Python与EXCEL通信。。。我需要找到一种方法,以便在一行中查找/搜索给定的列数据。现在,我一行一行地扫描整行。。。如果有诸如查找/搜索/替换之类的功能,它将非常有用。。。。我在pyExcelerator或xlrd模块中没有看到这些功能。。我不想使用Win32 COM模块!它使我的工具基于windows

通过Python查找/搜索Excel行。。。。有什么想法吗?

“现在,我一行一行地扫描整个行”

怎么了?“搜索”——在电子表格上下文中——是非常复杂的。搜索值?搜索公式?向下搜索行,然后跨列搜索?仅搜索特定列?仅搜索特定行

电子表格不是简单的文本——简单的文本处理设计模式不适用

电子表格搜索很难,而且你做得很正确。没有比这更好的了,因为这很难

“现在,我正在逐个扫描整行”

怎么了?“搜索”——在电子表格上下文中——是非常复杂的。搜索值?搜索公式?向下搜索行,然后跨列搜索?仅搜索特定列?仅搜索特定行

电子表格不是简单的文本——简单的文本处理设计模式不适用


电子表格搜索很难,而且你做得很正确。没有比这更好的了,因为这很难

你不能。这些工具不提供搜索功能。您必须在循环中迭代数据并自己搜索。对不起。

你不能。这些工具不提供搜索功能。您必须在循环中迭代数据并自己搜索。抱歉。

使用PyExcelator,您可以通过首先查找最大行和列索引(并存储它们)来进行简单的优化,这样您就可以对范围(maxcol+1)中的i迭代
(行,i)
,而不是迭代所有字典键。这可能是您得到的最好结果,除非您希望遍历并建立一个字典映射值到一组键


顺便说一句,如果您使用PyExcellator编写电子表格,请注意它有一些bug。我遇到过一个涉及写入介于230和232(或大约)之间的整数的例子。现在很难联系到原作者,因此
xlwt
是修复(已知)bug的工具。对于编写电子表格,它是PyExcellator的替代品;您可以
将xlwt作为pyExcelerator导入
,而不做任何更改。不过,它不读取电子表格。

使用PyExcelator,您可以通过首先查找最大的行和列索引(并存储它们)来进行简单的优化,这样您就可以对范围(maxcol+1)内的i迭代
(行,i)
,而不是迭代所有字典键。这可能是您得到的最好结果,除非您希望遍历并建立一个字典映射值到一组键


顺便说一句,如果您使用PyExcellator编写电子表格,请注意它有一些bug。我遇到过一个涉及写入介于230和232(或大约)之间的整数的例子。现在很难联系到原作者,因此
xlwt
是修复(已知)bug的工具。对于编写电子表格,它是PyExcellator的替代品;您可以
将xlwt作为pyExcelerator导入
,而不做任何更改。不过,它不看电子表格。

@johnfouhy:[我是xlwt的维护者,也是xlrd的作者]

pyExcelerator的电子表格读取部分遭到了严重的抨击,以至于它完全从xlwt中消失了。要使用Python 2.1+读取由Excel 2.0至11.0(Excel 2003)或兼容软件创建的任何XLS文件,请使用

xlrd不需要“简单优化”:

import xlrd
book = xlrd.open_workbook("foo.xls")
sheet = book.sheet_by_number(0) # alternatively: sheet_by_name("Budget")
for row_index in xrange(sheet.nrows): 
    for col_index in xrange(sheet.ncols):

@约翰·福伊:[我是xlwt的维护者,也是xlrd的作者]

pyExcelerator的电子表格读取部分遭到了严重的抨击,以至于它完全从xlwt中消失了。要使用Python 2.1+读取由Excel 2.0至11.0(Excel 2003)或兼容软件创建的任何XLS文件,请使用

xlrd不需要“简单优化”:

import xlrd
book = xlrd.open_workbook("foo.xls")
sheet = book.sheet_by_number(0) # alternatively: sheet_by_name("Budget")
for row_index in xrange(sheet.nrows): 
    for col_index in xrange(sheet.ncols):

有趣的额外信息。谢谢。有趣的额外信息。谢谢。在约翰·梅辛的帮助下,我去年用xlrd创建了一个应用程序(再次感谢约翰!)。在约翰·梅辛的帮助下,我去年用xlrd创建了一个应用程序(再次感谢约翰!)。他在这里很在行。