[英]Sorting Excel by 4 columns using Python (using win32com?)
我一直在尝试按4列对电子表格进行排序。 使用win32com,我已成功使用以下代码按3列进行排序:
excel = win32com.client.Dispatch("Excel.Application")
wb= excel.Workbooks.Open('.xlsx')
ws= wb.worksheets[0]
ws.Range(D6:D110).Sort(Key1=ws.Range('D1'), Order1=1, Key2=ws.Range('E1'), Order2=2, Key3=ws.Range('G1'), Order3=3, Orientation=1)
但是,当我尝试添加Key4时,它说Key4是意外的关键字参数。 Range.Sort功能是否仅限于3个键? 有没有办法增加第四位?
是否有另一种方法可以使用pandas或openpyxl?
提前致谢!
尝试阅读excel工作表,然后按标题名称排序。 假设您的Excel工作表格式正确,例如CSV。
import pandas as pd
df = pd.read_excel('filename.xlsx')
df = df.sort_values(['key1','key2','key3','key4'], axis=1)
df.to_excel('filename2.xlsx')
简单地按三个键的顺序对需要的两倍或多次进行排序。
xlAscending = 1
xlSortColumns = 1
xlYes = 1
ws.Range(D6:D110).Sort(Key1=ws.Range('D1'), Order1=xlAscending,
Key2=ws.Range('E1'), Order2=xlAscending,
Key3=ws.Range('G1'), Order3=xlAscending,
header=xlYes, Orientation=xlSortColumns)
# FOURTH SORT KEY (ADJUST TO NEEDED COLUMN)
ws.Range(D6:D110).Sort(Key1=ws.Range('H1'), Order1=xlAscending,
header=xlYes, Orientation=xlSortColumns)
顺便说一下,对于xlSortOrder常量,您的订单号应仅为1、2或-4135。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.