Как отсортировать столбец файла xls и записать его в другой файл со всей строкой, используя python? - PullRequest
1 голос
/ 03 февраля 2012

как отсортировать столбец файла xls и записать его в другой файл со всей строкой, используя python? Файл xls должен быть отсортирован по столбцам. И после сортировки его нужно записать в другой файл.

1 Ответ

5 голосов
/ 03 февраля 2012

Как насчет:

     column = 0 #The column you want to sort by
     reader = list(csv.reader(open('input.xsl')))
     reader.sort(key=lambda x: x[column])
     writer = csv.writer(open('output.xsl', 'w'))
     writer.writerows(reader)

Мой плохой, ну вы всегда можете экспортировать как CSV, я думаю. Если вы хотите придерживаться xls, вы можете использовать xlrd и xlwt. Я не много работал с этим, но у меня есть пример из задачи, которую я должен был сделать некоторое время назад. Вот оно (не то, чтобы это не было на 100% хорошо, потому что заголовки ячеек для каждого столбца будут сохранены как первая строка в данных выходного файла):

    import xlwt
    from xlrd import open_workbook

    target_column = 0

    book = open_workbook('input.xls', formatting_info=True)
    sheet = book.sheets()[0]
    data = [sheet.row_values(i) for i in xrange(sheet.nrows)]
    labels = data[0]
    data = data[1:]
    data.sort(key=lambda x: x[target_column])

    wbk = xlwt.Workbook()
    sheet = wbk.add_sheet(sheet.name)

    for idx, label in enumerate(labels):
         sheet.write(0, idx, label)

    for idx_r, row in enumerate(data):
        for idx_c, value in enumerate(row):
            sheet.write(idx_r+1, idx_c, value)

    wbk.save('result.xls')
...