使用Python 2解析包含超过255个字符的Excel工作表

时间:2016-12-20 16:34:49

标签: python excel

我有一个包含3行的Excel电子表格,我使用Python2解析,并将数据导出到.txt文件。第三行超过255个字符,因此当解析器到达255列长度的末尾时,它会删除其余的数据。无论如何要处理这个问题吗?

from openpyxl import load_workbook
outf = open('c:\\Python27\\scripts\\saba_parser\\index.txt', 'w')
outf2 = open('c:\\Python27\\scripts\\IMS\\cse_errors.txt', 'w')
wb = load_workbook('c:\\Python27\\scripts\\saba_parser\\Copy of Saba_Views_good.xlsx')
s1 = wb.worksheets[0]


for r in s1:
   name = str(r[0].value)
   if r[2].value == None:
      tail = "None"
   else:
      #info = r[2].value.split("FROM")[-1]
      info = str(r[2].value)
      head, sep, tail = info.partition("FROM")
outf.write(name+','+tail+"\n")
#outf.write(name+','+info+"\n")

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

也许如果您将工作簿加载为"read only",则可以处理长列。

显然,如果文件没有正确设置维度,这可能会导致问题

  

只读模式依赖于创建该文件的应用程序和库,它们提供有关工作表的正确信息,特别是其中使用的部分,称为维度。某些应用程序设置错误。您可以使用ws.calculate_dimensions()检查工作表的外观尺寸。如果这返回一个你知道不正确的范围,比如A1:A1然后只需重置max_row和max_column属性就可以让你使用文件

尝试将此修补程序用于代码

wb = load_workbook('c:\\Python27\\scripts\\saba_parser\\Copy of Saba_Views_good.xlsx',read_only=True)
s1 = wb.worksheets[0]
# Only use the next line if s1.calculate_dimensions() does not give you the expected result
# s1.max_row = s2.max_column = None