[英]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.