精华内容
下载资源
问答
  • 有几种方法可以做到这一点。...这些示例使用以下格式的excel文档:利用xlrd和answer的一些修改:import xlwtfrom xlrd import open_workbooktarget_column = 0 # This example only has 1 column, and i...

    有几种方法可以做到这一点。第一个选项是利用^{},因为您已经标记了这个。最大的缺点是它不会以XLSX格式进行本机写入。

    这些示例使用以下格式的excel文档:

    nrnzp.png

    利用xlrd和对answer的一些修改:import xlwt

    from xlrd import open_workbook

    target_column = 0 # This example only has 1 column, and it is 0 indexed

    book = open_workbook('test.xlsx')

    sheet = book.sheets()[0]

    data = [sheet.row_values(i) for i in xrange(sheet.nrows)]

    labels = data[0] # Don't sort our headers

    data = data[1:] # Data begins on the second row

    data.sort(key=lambda x: x[target_column])

    bk = xlwt.Workbook()

    sheet = bk.add_sheet(sheet.name)

    for idx, label in enumerate(labels):

    sheet.write(0, idx, label)

    for idx_r, row in enumerate(data):

    for idx_c, value in enumerate(row):

    sheet.write(idx_r+1, idx_c, value)

    bk.save('result.xls') # Notice this is xls, not xlsx like the original file is

    这将输出以下工作簿:

    tQTqB.png

    另一个选项(以及可以利用XLSX输出的选项)是利用^{}。代码也更短:import pandas as pd

    xl = pd.ExcelFile("test.xlsx")

    df = xl.parse("Sheet1")

    df = df.sort(columns="Header Row")

    writer = pd.ExcelWriter('output.xlsx')

    df.to_excel(writer,sheet_name='Sheet1',columns=["Header Row"],index=False)

    writer.save()

    这将输出:

    GDW6Z.png

    在^{}调用中,index被设置为False,这样熊猫数据帧索引就不会包含在excel文档中。其余的关键字应该是不言而喻的。

    展开全文
  • VBA操作Excel内容排序,用Sort函数对工作表内容排序

    万次阅读 多人点赞 2019-02-18 23:52:47
    今天有同学问到关于大批量Excel的Sheet如何简化排序,但是网上的攻略比较混乱。因此,在这做一下示例。 需求:80页sheet的Excel文档,每页的格式相同,基本内容如下,要求根据A列,升序排列。 代码如下: ...

    今天有同学问到关于大批量Excel的Sheet如何简化排序,但是网上的攻略比较混乱。因此,在这做一下示例。

    需求:80页sheet的Excel文档,每页的格式相同,基本内容如下,要求根据A列,升序排列。

    代码如下:

    Option Explicit
    Sub MySort()
    Dim i As Integer
    Dim maxRow As Integer
    Dim sht As Worksheet
    
    '遍历所有工作表
    For i = 1 To ActiveWorkbook.Worksheets.Count
    
        Set sht = ActiveWorkbook.Worksheets(i)
    
        '激活当前工作表,Sort只能排序当前工作表
        sht.Activate
    
        '获取当前表最大行数
        maxRow = sht.UsedRange.Rows.Count
    
        '选取范围进行排序:这里是选取a3:ao41(前两行因为是标题,所以不选);key是排序的列,这里写a3,表示以a列为依据排序,最多可以写3个key;order表示升序降序;Header表示是否有标题,由于我们没选a1、a2,所以这里写no
        sht.Range("a3:ao" & maxRow).Sort key1:=sht.Range("a3"), order1:=xlAscending, Header:=xlNo
    
    Next i
    
    End Sub

     

    注意,Vba的排序函数为Sort,基本用法如下:

    Range("待排序数据区域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,
            Header, OrderCustom, MatchCase, Orientation, SortMethod,
            DataOption1, DataOption2, DataOption3)
    其中各类型参数的意义如下:
    ① key1、key2、key3
    这些key是排序的关键列(或行)的单元格地址,如 Range("A1")
    实际只要选对列标题即可,对行数要求不敏感。

    【行数要求不敏感】
    即数据区域中任意行数都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

    【注意】
    1. 一次Sort只能调用至多3个参数,没有key4可以使用。
    2. 至少使用1个参数即可,即key2、key3可以省去不用。

    【引用方法】
    1. 带参数名引用,如: key1:=Range("G3")
       带参数名引用时
    2. 参数位置引用,即按照上述Sort命令的参数顺序直接应用,
       如: Range("A1:I19").Sort key1:=Range("G3")  即第1位置参数即为key1
    ②  Order1、Order2、Order3
       这些Order是排序的顺序模式指定参数。即: A-Z升序、或Z-A降序
        参数的模式名称为:
              A-Z升序= xlAscending 或直接=1
                   Z-A降序= xlDescending 或直接=2
      带参数名引用时:
      Order1:=xlAscending  或 Order1:= 1
      参数位置引用时,紧跟key后面。(但注意key2和Order2之间要隔一个Type参数)
    ③  Header
        即是否有标题行参数,一共有3个值:
        Header:= xlGuess=0 或xlYes=1 或 xlNo=2
        即=xlGuess、或=0时,工作表自己判断
         =xlYes、或=1时,强制第1行为列标题,即第1行【不参与排序】
         =xlNo、或=2时,强制没有列标题。即第1行【也参与排序】
      带参数名引用时:
       如: Header:= xlGuess
       参数位置引用时,在第7个逗号之后。
      (如果key只有1个时,要连续空6个逗号,
       如:Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之后连续写6个逗号)
    ④ MatchCase 是否匹配大小写
        MatchCase:=False 、或=0 不区分大小写
        MatchCase:=True 、或=1 区分大小写(Case Sensitive)
    ⑤ Orientation 排序方向 
       一般为同一列中从上到下各行进行排序:Orientation:= xlTopToBottom 、或=1
        如果是: 同一行中从左到右各列进行排序,则为:Orientation:= xlLeftToRight、或=2
    ⑥ SortMethod 排序方法
        按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)
        按笔画排序: SortMethod:= xlStroke、或=2
    ⑦ DataOption1 按数值或按文本排序
        DataOption1:= xlSortNormal

     

     

    展开全文
  • Subsort() Dim i% Dim j% If Worksheets.Count = 1 Then End For j = 1 To Worksheets.Count - 1 For i = 1 To Worksheets.Count - 1 If IsNumeric(Sheets(i).Name) And IsNumeric(Sheets(i + 1).Name) Then ...

    Sub sort()
    Dim i%
    Dim j%
    If Worksheets.Count = 1 Then End
    For j = 1 To Worksheets.Count - 1
        For i = 1 To Worksheets.Count - 1
            If IsNumeric(Sheets(i).Name) And IsNumeric(Sheets(i + 1).Name) Then
                If --Sheets(i).Name > --Sheets(i + 1).Name Then Sheets(i + 1).Move Before:=Sheets(i)
            Else
                If Sheets(i).Name > Sheets(i + 1).Name Then Sheets(i + 1).Move Before:=Sheets(i)
            End If
        Next i
    Next j
    End Sub

    展开全文
  • excel快速排序,实现不同的excel中的sheet进行快速排序
  • 用VBA一个EXCEL中的多个工作表排序

    千次阅读 2016-12-21 17:02:30
    要求:一个EXCEL中的多张工作表进行相同的排序 第一次进行VBA代码实际操作,先录制的宏,然后再代码进行微调。 虽然还有所欠缺,不过是第一次,记在这里做个小纪念,继续努力!

    要求:对一个EXCEL中的多张工作表进行相同的排序

    第一次进行VBA代码实际操作,先录制的宏,然后再对代码进行微调。

    虽然还有所欠缺,不过是第一次,记在这里做个小纪念,继续努力!

    Sub 排序排序()
    '遍历所有工作表
      For i = 1 To Sheets.Count
        Sheets(i).Select  '选择第一张工作表
        Range("A3:G9").Select    '选择需要排序的单元格
        Range(Selection, Selection.End(xlDown)).Select
        ActiveWorkbook.Sheets(i).Sort.SortFields.Clear  '这里录制宏为sheets("工作表名"),把它改成了sheets(1),研究了一会儿功夫,总算成功了
        ActiveWorkbook.Sheets(i).Sort.SortFields.Add Key:=Range("C3:C562"), _    '这边的sheets("工作表名")也需要修改
    '##################################排序过程###################################### 
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    
     '这边的sheets("工作表名")也需要修改
    
    
    
    
    
    
    ActiveWorkbook.Sheets(i).Sort.SortFields.Add Key:=Range("A3:A562"), _ SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _ "15t16,17t18,19,20,21t22,23,24,25,26,27t28,29,30t33,34t35,36t37", DataOption _ :=xlSortNormal
     '这边的sheets("工作表名")也需要修改
    
    
    With ActiveWorkbook.Sheets(i).Sort .SetRange Range("A3:G562") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
    Next End Sub
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • excel按拼音顺序排序If you have a large number of worksheets in your Excel workbook, it may be hard to find a specific worksheet. Sorting your worksheet tabs alphabetically would make it easier to find...
  • 今天小编跟大家分享一下Excel工作表如何按照字母顺序排序 1.如下图我们想要将工作表按照字母进行排序。 2.首先我们点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说...
  • excel数据透视表 Excel数据透视表排序问题 (Excel Pivot Table Sorting Problems) Usually, it's easy to sort an Excel pivot table – just click the drop down arrow in a pivot table heading, and select one ...
  • 对Excel数据进行排序是数据分析不可缺少的组成部分。您可能需要执行以下操作:将名称列表按字母顺序排列;按从高到低的顺序编制产品存货水平列表,按颜色或图标进行排序数据进行排序有助于快速直观地显示数据...
  • 文本进行Excel排序.rar,数值数据进行排序的常用方法是使用SMALL函数或LARGE函数来实现。本例“部门明细表排序工作表中,其中A列为一级部名称,包含重复值。利用介绍的方法可将一级部名称按升序进行排列。“一...
  • excel工作簿中有多个工作表,由于个人需要,每个工作表中某一值的比较大小后,然后进行排序。 由于vba中字典对应值比较难以排序,所以就分为两步 第一步是提取工作表名和对应字段写到工作表中: Sub ...
  • excel 区域内按行排序Excel彩票号码行进行排序 (Sort Lottery Number Rows in Excel) One of the best features of Excel is that it's quick and easy to sort columns of data Excel的最佳功能之一是可以...
  • 原文:http://coolketang.com/staticOffice/5a97f32a17d009003591cb09.html1. 本节课将为您演示,如何当前工作表中的数据,按照工作人员所在列的背景颜色进行排序。首先点击[排序和筛选]按钮,打开排序命令菜单。...
  • 使用excel时,有时会碰到一个表格里面很多的sheet,比如sheet11,sheet23。...当这些sheet是无序的时候,查找一个sheet很疼,所有想按sheet来排序下,但是excel本身又不提供按sheet排序的方法,所有就上网找了下...
  • excel工作簿自动排序If you use a few Excel spreadsheets daily, it would be handy if you could open those spreadsheets automatically every time you start Excel. Thankfully, Excel has this feature built-...
  • C# 对Excel表格中的数据进行排序

    千次阅读 2018-06-01 16:38:22
    我们可以对Excel中的一列或多列数据进行排序,本文将介绍以下三种排序方式:基于单元格的值基于单元格的背景颜色基于单元格的字体颜色本文所使用的Dll为Spire.XLS,安装后,需要从安装目录Bin文件夹下引用Spire.Xls....
  • Excel工作表探密

    千次阅读 2007-11-05 11:18:00
    Excel工作表探密 Sheets集合与Worksheets集合的区别Sheets集合代
  • 3.在新工作表中打开 4.将需要用到透视字段拖入相应的“行,列,值” 排序: 透视表中无法排序,可以自己复制数据透视表中的所需数据。 例如学生—成绩 选中成绩—数据—排序—扩展选定区域—添加主关键字为“成绩”...
  • vba excel排序 Excel VBA单击“形状以进行排序” (Excel VBA Click Shape to Sort Column)People are lazy! Shocking, I know, but who wants to click twice in Excel, if you can do the same thing by only ...
  • 今天我们公司销售部的库管找我帮忙解决一个问题:3月份的库存有2个,A是3.1的,B是3.31,现在想要找出2个的差异,但是400多个货品在2个排序都不一样;能不能将B的货品按照A的顺序排列呢?   ...
  • 2、透视数据排序: 3、更改透视数据源: 4、数据透视的无效行标签如何清除(是否保留从数据源部分中删除的项目) 5、改变透视汇总行的位置(上或下): 6、透视工作簿引用数据时提示:“不能打开...
  • 原文:http://coolketang.com/staticOffice/5a97f32bee920a788082fff5.html1. 本节课将为您演示,如何对工作表按行进行排序。首先将当前的工作表行和列进行互换,点击选择A2单元格,并向右下方拖动,以选择该工作表...
  • 如何保护Excel工作表

    万次阅读 2012-02-20 18:08:07
    保护工作薄是保护工作薄的窗口或者结构,举个例子,一个工作薄里面有3个工作表,你设置了工作薄保护,就只有在解除工作薄保护之后才可以增加或者删除工作表,但已经存在的工作表,可以进行编辑的,也就是你说的...
  • 1.如下图工作簿中含有多个工作表,现在我们想要将这些工作表按照数值大小进行排序。 2.首先我们点击下图选项(Excel工具箱,百度即可了解详细的下载安装信息,本文这里就不做具体解说) 3.点击【工作表】,...
  • 工作表标签栏一次最多也就显示五六个工作表名称,即不能排序又不支持查找功能。想直考试吧接在标签栏中按名称找工作表可不简单,单是翻页就够你眼睛花的。在此为大家介绍两种在Excel 2007中轻松找到指定工作表的方法...
  • 按4个条件排序EXCEL表

    2012-04-01 13:10:24
    EXCEL2003不能4个条件进行排序,此程序可以按照指定的条件完成任务。
  • 由于项目需要,要一些表格进行整理,但数据量太大,在表格进行校对的时候很是令人头疼,因此,通过网上查找了一下资料,知道了Ofiice 2016 Excel 中有些功能可以简化我们的工作过程,从而轻易地实现Excel表中...
  • 代码3:批量重命名工作表排序excel进阶必备代码,大大提高效率

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,047
精华内容 8,818
关键字:

怎样对excel工作表进行排序