我正在尝试使用 win32com 对 python 中的一系列单元格进行排序:
我一直在使用的代码是:
sheet.Range("A1:B8").Sort(Key1=sheet.Range("B1"), Orientation=constants.xlAscending)
正在运行。它按第二列对单元格范围进行排序:
当我想要时,是按降序而不是升序排序:
sheet.Range("B8:A1").Sort(Key1=sheet.Range("B1"), Orientation=constants.xlDescending)
但由于某些奇怪的原因,它会切换每列中的数据,并且不会对最初位于第二列中的值进行排序。
我使用过大量不同的参数类型,因此排序方法 here但似乎没有任何作用。有谁有这种方法的经验并且可以建议我如何使第二列降序排序?
最佳答案
您的方向参数应该是:xlSortColumns = 1
或xlSortRows = 2
。请参阅下面的Python脚本调整。作为Range.Sort Method显示,Order1、Order2 和 Order3 采用 xlAscending = 1
或xlDescending = 2
值(value)观。
import win32com.client
wbk = 'C:\\Path\\To\\Workbook.xlsx'
xlApp = win32com.client.Dispatch("Excel.Application")
xlApp.Workbooks.Open(wbk)
xlAscending = 1
xlSortColumns = 1
xlApp.Sheets(1).Columns("A:B").Sort(Key1=xlApp.Sheets(1).Range("B1"),
Order1=xlAscending, Orientation=xlSortColumns)
xlApp.Quit
xlApp = None
关于python - 对单元格范围进行排序,win32com.client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247373/