对一系列单元格进行排序,win32com.client
Sort a Range of Cells, win32com.client
我正在尝试使用 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
值。
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
我正在尝试使用 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
值。
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