Udostępnij za pośrednictwem


Programowe sortowanie danych w arkuszach

Dane zawarte w zakresach arkuszy i listach można sortować w czasie wykonywania. Poniższy kod sortuje zakres wielokolumny o nazwie według Fruits danych w pierwszej kolumnie, a następnie według danych w drugiej kolumnie.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Excel. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

Sortowanie danych w dostosowywaniu na poziomie dokumentu

Aby sortować dane w kontrolce NamedRange

  1. Wywołaj metodę Sort kontrolki NamedRange . Poniższy przykład wymaga kontrolki NamedRange o nazwie Fruits w arkuszu. Ten kod musi zostać umieszczony w klasie arkusza, a nie w ThisWorkbook klasie.

    this.Fruits.Sort(
        this.Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending,
        this.Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending,
        Excel.XlYesNoGuess.xlNo, missing, missing, 
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal);
    

    Umieść następujący kod w pliku Sheet1.vb lub Sheet1.cs , aby posortować dane w kontrolce ListObject . W kodzie przyjęto założenie, że masz kontrolkę ListObject o nazwie fruitList w arkuszu o nazwie Sheet1.

Aby sortować dane w kontrolce ListObject

  1. Wywołaj metodę Sort właściwości Range kontrolki ListObject hosta.

    this.fruitList.Range.Sort(
        this.fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
        this.fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending, 
        Excel.XlYesNoGuess.xlYes, missing, missing, 
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin, 
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal);
    

Sortowanie danych w dodatku VSTO

Aby sortować dane w zakresie natywnym

  1. Wywołaj metodę Sort natywnej kontrolki programu Excel Range . Poniższy przykład wymaga natywnej kontrolki programu Excel o nazwie Fruits w arkuszu.

    Excel.Range Fruits = Application.get_Range("A1", "B3");
        Fruits.Sort(
        Fruits.Columns[1], Excel.XlSortOrder.xlAscending,
        Fruits.Columns[2], missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending,
        Excel.XlYesNoGuess.xlNo, missing, missing,
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal);
    

Aby sortować dane w kontrolce ListObject

  1. Wywołaj metodę Sort Range właściwości natywnej kontrolki programu Excel ListObject . W poniższym przykładzie przyjęto założenie, że masz natywną kontrolkę programu Excel ListObject o nazwie fruitList w aktywnym arkuszu.

    Excel.ListObject fruitList = 
         ((Excel.Worksheet)Application.ActiveSheet).
             ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange,
             Application.get_Range("A1", "B3"), 
             missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo); 
        fruitList.Range.Sort(
            fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
            fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
            missing, Excel.XlSortOrder.xlAscending,
            Excel.XlYesNoGuess.xlYes, missing, missing,
            Excel.XlSortOrientation.xlSortColumns,
            Excel.XlSortMethod.xlPinYin,
            Excel.XlSortDataOption.xlSortNormal,
            Excel.XlSortDataOption.xlSortNormal,
            Excel.XlSortDataOption.xlSortNormal);