【发布时间】:2018-08-15 06:08:04
【问题描述】:
我现在使用PyExcelerator 来读取 excel 文件,但它非常很慢。由于我总是需要打开超过 100MB 的 excel 文件,所以我只加载一个文件需要二十多分钟。
我需要的功能是:
- 打开 Excel 文件,选择特定表格,然后将它们加载到字典或列表对象中。
- 有时:选择特定列并仅加载具有特定值的特定列的整行。
- 读取受密码保护的 Excel 文件。
而我现在使用的代码是:
book = pyExcelerator.parse_xls(filepath)
parsed_dictionary = defaultdict(lambda: '', book[0][1])
number_of_columns = 44
result_list = []
number_of_rows = 500000
for i in range(0, number_of_rows):
ok = False
result_list.append([])
for h in range(0, number_of_columns):
item = parsed_dictionary[i,h]
if type(item) is StringType or type(item) is UnicodeType:
item = item.replace("\t","").strip()
result_list[i].append(item)
if item != '':
ok = True
if not ok:
break
有什么建议吗?
【问题讨论】:
-
你试过其他库了吗? (我没有这方面的技术知识,我只是感兴趣)
-
是的,我试过了,但是那些总是没有写 xls 的功能。阅读大 xls 后,我还必须进行一些计算并将结果保存到小 xls 中。
-
@FelixYan:很高兴知道,希望你能得到一些好的答案!
-
对于写作部分,你可以使用xlwt,或者,如果你只是写值,你可以使用CSV format(可以很容易地导入Excel)。
-
这 20 分钟是否仅包括 pyExcelerator.parse_xls() 还是您计算自己的后续代码?