需要从单个excel fi生成多个文件

2024-05-10 18:52:36 发布

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

我有一个excel文件。有很多列。我需要用这个制作多个文件

例如:0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2。这些是excel列,每个列都有许多行。我需要一个包含0 0 0 0 1 1 1 1 2的文件,然后第二个只包含第二个0 0 0 0 1 1 1 1 2….与其他文件类似。

谢谢你们的回复。为了简化问题:

  1. 我有一个excel文件,上面有列和行的数目。列命名为

alt text http://img44.imageshack.us/img44/3397/84200961244pm.png

现在我需要把这个文件分成许多excel文件

包含所有行的A到O列。第二个将有A到N+P(这将没有列O),类似地,其他2。会有很多列有2,我将不得不做一个文件,包含所有列包含O和1,每2一次。i、 e先是2,然后是2,以此类推。


Tags: 文件texthttppngaltexcel命名us
3条回答

使用Python和xlrd&xlwt。见http://www.python-excel.org

下面的脚本应该满足您的要求:

import xlrd, xlwt, sys

def raj_split(in_path, out_stem):
    in_book = xlrd.open_workbook(in_path)
    in_sheet = in_book.sheet_by_index(0)
    first_row = in_sheet.row_values(0)
    # find the rightmost 1 value in the first row
    split_pos = max(
        colx for colx, value in enumerate(first_row) if value == 1.0
        ) + 1
    out_book = xlwt.Workbook()
    out_sheet = out_book.add_sheet("Sheet1", cell_overwrite_ok=True)
    # copy the common cells
    for rowx in xrange(in_sheet.nrows):
        row_vals = in_sheet.row_values(rowx, end_colx=split_pos)
        for colx in xrange(split_pos):
            out_sheet.write(rowx, colx, row_vals[colx])
    out_num = 0
    # for each output file ...
    for out_col in range(split_pos, in_sheet.ncols):
        out_num += 1
        # ... overwrite the `split_pos` column
        for rowx, value in enumerate(in_sheet.col_values(colx=out_col)):
            out_sheet.write(rowx, split_pos, value)
        # ... and save the file.
        out_book.save("%s_%03d.xls" % (out_stem, out_num))

raj_split(*sys.argv[1:3])

您可以使用^{}读取电子表格。不幸的是,这就是我能帮你的全部,因为,坦白地说,对你的问题的描述毫无意义。

在python中,可以使用xlrd将Excel电子表格读入可以使用的数据。有关示例用法,请参见README。然后可以使用xlwt创建新的电子表格。

相关问题 更多 >