用Python分割xls文件

我有一个大的.xls文件,我想根据第一列分成几个文件。 数据结构有点不好使其复杂化了很多。

基本上我需要为“问题”(见下文)开始的每一行创build一个单独的文件。 选项的数量是可变的,所以我不能使用块大小。

有什么办法可以用Python做到这一点? 我已经search了很多stackoverflow,但我找不到确切的答案。 很感谢任何forms的帮助。

 Column A Column B Column C Question 1 Option 1 Info1 Info2 Option 2 Info3 Option 3 Question 2 Option 1 Option 2 Option 3 Option 4 Question 3 Option 1 Option 2 Option 3 

对于Python来使用.xls文件,您将需要使用像xlrdxlwt 。 下面的脚本应该让你开始:

 from itertools import groupby import xlrd import xlwt workbook = xlrd.open_workbook(r"e:\python temp\input.xls") sheet = workbook.sheet_by_index(0) rows = [sheet.row_values(row, 0) for row in xrange(sheet.nrows)] for k, g in groupby(rows, lambda x: x[0].startswith('Question')): if k: question = next(g) else: wb = xlwt.Workbook() ws = wb.add_sheet('Sheet 1') for colx, value in enumerate(question): ws.write(0, colx, value) for rowx, row in enumerate(g, start=1): for colx, value in enumerate(row): ws.write(rowx, colx, value) wb.save(question[0] + '.xls') 

这将打开input.xls并读取所有行。然后使用groupby将其分为问题和选项。 然后根据问题将每一对写入新的输出Excel文件,例如Question 1.xls

您可能需要将完整path添加到input和输出文件。

这两个库可以在python-excel网站上find。

您的问题的确切答案将要求创build整个代码,这不是SO的目标。

不过,我会说,使用Python的csv模块似乎并不复杂。 请看看它,并进一步的怀疑和/或失败的尝试达到预期的结果编辑你的问题。