python给excel排序_使用Python对Excel中的列数据进行排序

发布于:2023-04-27 ⋅ 阅读:(745) ⋅ 点赞:(0)

有没有办法从excel表格中获取列,将列写入列表并将其排序,然后将它们重写为另一个Excel表格?这是我到目前为止所尝试的,但它只写入最后一列数据。我不需要前两行数据,因为它们只是标题。使用Python对Excel中的列数据进行排序

import xlrd

import xlsxwriter

wb = xlrd.open_workbook('exceldata.xlsx')

ws = wb.sheet_by_index(0)

col=[]

for i in range(2,ws.ncols):

col=ws.col_values(i)

for x in range(2):

col.pop(0)

col.sort()

workbook = xlsxwriter.Workbook('test_sorting.xlsx')

worksheet = workbook.add_worksheet()

worksheet.write_column('A1',col)

workbook.close()

UPDATE:这是成功的,但没有人知道这是如何简化?

import xlrd

import xlsxwriter

wb = xlrd.open_workbook('exceldata.xlsx')

ws = wb.sheet_by_index(0)

col1=ws.col_values(2)

for x in range(2):

col1.pop(0)

col1.sort()

col2=ws.col_values(3)

for x in range(2):

col2.pop(0)

col2.sort()

col3=ws.col_values(4)

for x in range(2):

col3.pop(0)

col3.sort()

col4=ws.col_values(5)

for x in range(2):

col4.pop(0)

col4.sort()

col5=ws.col_values(6)

for x in range(2):

col5.pop(0)

col5.sort()

columns=[]

for i in range(2,7):

col=ws.col_values(i)

columns.append(col)

print(columns)

workbook = xlsxwriter.Workbook('test_sorting.xlsx')

worksheet = workbook.add_worksheet()

worksheet.write_column('A2',col1)

worksheet.write_column('B2',col2)

worksheet.write_column('C2',col3)

worksheet.write_column('D2',col4)

worksheet.write_column('E2',col5)

workbook.close()

+0

您不需要弹出任何值。您可以简单地从第二个元素开始检索值:'ws.col_values(3,1)'返回一个以D2开头的值列表。虽然我认为xlrd是阅读Excel文件的最佳软件包,但它没有最好的文档。您应该查看旧的[教程PDF](https://github.com/python-excel/tutorial)的xlrd部分。是的,它已经过时了,但仍然比“官方”xlrd文档更好。 –

+0

最后的循环,构建'columns',是正确的想法。您可以使用'columns'而不是'col1','col2'等。请注意,虽然'columns'是一个列表,但它内部的元素也是列表,因此可以单独引用和操作。例如,在上面的代码中,'columns [2]'包含与'col3'相同的数据(除了弹出和排序)。你如何弹出和排列“列”中的数据?最简单的方法就是在你创建'columns'的时候,在将'col'追加到'columns'之前立即做'col'。 –


网站公告

今日签到

点亮在社区的每一天
去签到