使用Python拆分xls文件

2024-09-27 02:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的.xls文件,我想根据第一列将其拆分为多个文件。数据结构有点不确定,这使它复杂化了很多。在

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

我有什么办法可以用Python做到这一点吗?我在stackoverflow上搜索了很多,但找不到确切的答案。非常感谢任何帮助。在

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

Tags: 文件答案数据结构数量选项columnxlsstackoverflow
2条回答

为了让Python使用.xls文件,您需要使用xlrd和{}之类的东西。下面的脚本可以帮助您开始:

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

您可能需要向输入和输出文件添加完整路径。在

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

你的问题的确切答案需要创建完整的代码,这不是SO的目标。在

不过,我想说,使用Python的csv module似乎并不复杂。请看一看,并编辑您的问题,如果有进一步的疑问和/或未能达到预期结果的尝试。在

相关问题 更多 >

    热门问题