python - 对单元格范围进行排序,win32com.client

标签 python sorting range win32com

我正在尝试使用 win32com 对 python 中的一系列单元格进行排序:

enter image description here

我一直在使用的代码是:

sheet.Range("A1:B8").Sort(Key1=sheet.Range("B1"), Orientation=constants.xlAscending)

正在运行。它按第二列对单元格范围进行排序:

enter image description here

当我想要时,是按降序而不是升序排序:

sheet.Range("B8:A1").Sort(Key1=sheet.Range("B1"), Orientation=constants.xlDescending)

但由于某些奇怪的原因,它会切换每列中的数据,并且不会对最初位于第二列中的值进行排序。

enter image description here

我使用过大量不同的参数类型,因此排序方法 here但似乎没有任何作用。有谁有这种方法的经验并且可以建议我如何使第二列降序排序?

最佳答案

您的方向参数应该是:xlSortColumns = 1xlSortRows = 2 。请参阅下面的Python脚本调整。作为Range.Sort Method显示,Order1Order2Order3 采用 xlAscending = 1xlDescending = 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/

相关文章:

python - 似乎无法让 pexpect 从命令打印数据

java - 为什么就地合并排序不稳定?

swift - 希腊字母的字符串范围不一致

python - Django CKEditor中的YouTube插件返回404

python - 注册 : Copy blob based on the area of the blob size

javascript 对列表进行随机排序

python - 独特的范围集,在需要时合并

Python 2.7 尝试使用范围和重复来缩小列表范围

python - 如何在jitclass中使用prange

javascript - 按父级排序(拓扑排序)和数组中元素的重要性