我尝试使用以下.py文件对Excel文件中的一行进行排序。我的样本数据是90 60 0 60 50 40 80 60 70 70 20,它们发生在我的excel文件的第一行中。您能帮我更正我的代码吗?预先感谢。
import win32com.client
wbk = 'C:\\Path\\To\\Workbook.xlsx'
xlApp = win32com.client.Dispatch("Excel.Application")
xlApp.Workbooks.Open(wbk)
xlAscending = 1
xlDescending = 2
xlSortColumns = 1
xlSortRows = 2
xlApp.Sheets(1).Range("A1:K1").Sort(Key1=xlApp.Sheets(1).Rows(1),
Order1=xlDescending, Orientation=xlSortRows)
xlApp.Quit
xlApp = None
答案 0 :(得分:0)
我过去曾经这样做过,看看是否有帮助:
ws.UsedRange.AutoFilter()
ws.AutoFilter.Sort.SortFields.Clear
ws.AutoFilter.Sort.SortFields.Add(Key=ws.Range("E1"), SortOn=xlSortOnValues, Order=xlDescending, DataOption=xlSortNormal)
ws.AutoFilter.Sort.Header = xlYes
ws.AutoFilter.Sort.MatchCase = False
ws.AutoFilter.Sort.Orientation = xlTopToBottom
ws.AutoFilter.Sort.SortMethod = xlPinYin
ws.AutoFilter.Sort.Apply()
已更正:
ws.UsedRange.AutoFilter(1)
ws.AutoFilter.Sort.SortFields.Clear
ws.AutoFilter.Sort.SortFields.Add(Key=ws.Range("E1"), SortOn=xlSortOnValues, Order=xlDescending, DataOption=xlSortNormal)
ws.AutoFilter.Sort.Header = xlYes
ws.AutoFilter.Sort.MatchCase = False
ws.AutoFilter.Sort.Orientation = xlTopToBottom
ws.AutoFilter.Sort.SortMethod = xlPinYin
ws.AutoFilter.Sort.Apply()