对单元格范围进行排序,win32com.client
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对单元格范围进行排序,win32com.client相关的知识,希望对你有一定的参考价值。
我试图使用win32com在python中对一系列单元格进行排序:
我一直在使用的代码是:
sheet.Range("A1:B8").Sort(Key1=sheet.Range("B1"), Orientation=constants.xlAscending)
这是有效的。它按第二列对单元格范围进行排序:
当我想要时,是按Descending而不是Ascending排序:
sheet.Range("B8:A1").Sort(Key1=sheet.Range("B1"), Orientation=constants.xlDescending)
但由于一些奇怪的原因,它会切换每列的数据,而不会对最初在第二列中的值进行排序。
我玩了很多不同的参数类型sot排序方法here但似乎没有任何工作。有没有人有这种方法的经验,可以建议我如何让第二列排序降序?
答案
你的方向论证应该是:xlSortColumns = 1
或xlSortRows = 2
。请参阅下面的Python脚本调整。正如Range.Sort Method所示,Order1,Order2和Order3采用xlAscending = 1
或xlDescending = 2
值。
import win32com.client
wbk = 'C:PathToWorkbook.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
以上是关于对单元格范围进行排序,win32com.client的主要内容,如果未能解决你的问题,请参考以下文章
在快照中捕获整个 tableview 单元格范围以进行打印和共享