C# 使用Kendo UI的排序和分组直接从数据源导出到Excel

C# 使用Kendo UI的排序和分组直接从数据源导出到Excel,c#,excel,sorting,kendo-ui,formatting,C#,Excel,Sorting,Kendo Ui,Formatting,我试图直接从datasource将数据导出到excel文件,我可以将其导出到excel,但问题是数据没有按照我希望的方式进行排序,也没有按照我希望的方式进行分组 无论我做什么,输出都不是按我希望的方式排序的,它与从数据源检索数据的方式一样 示例输入数据: |席琳| 29 |女| |基安| 25 |男| |胡安| 40 |男| |萨蒂娅| 25 |女| |库林| 50 |男| |丽兹| 15 |女| excel中的示例输出: |丽兹| 15 |女| |萨蒂娅| 25 |女| |席琳| 29 |女|

我试图直接从datasource将数据导出到excel文件,我可以将其导出到excel,但问题是数据没有按照我希望的方式进行排序,也没有按照我希望的方式进行分组

无论我做什么,输出都不是按我希望的方式排序的,它与从数据源检索数据的方式一样

示例输入数据:
|席琳| 29 |女|
|基安| 25 |男|
|胡安| 40 |男|
|萨蒂娅| 25 |女|
|库林| 50 |男|
|丽兹| 15 |女|

excel中的示例输出:
|丽兹| 15 |女|
|萨蒂娅| 25 |女|
|席琳| 29 |女|
|基安| 25 |男|
|胡安| 40 |男|
|库林| 50 |男|

下面是我使用的一段代码:

$(".export-excel").click(function () {

    var from = new Date($("input#startDate").val()), to = new Date($("input#endDate").val());

    var ds = new kendo.data.DataSource({
        type: "odata",
        transport: {
            read: {
                url: webApiUrl +
            "/data/getdata(startDateString='" +
                (from.getFullYear() + "-" + (from.getMonth() + 1) + "-" + from.getDate()) +
                "', endDateString='" + (to.getFullYear() + "-" + (to.getMonth() + 1) + "-" + to.getDate()) + "')",
                dataType: "json"
            },

            parameterMap: function (options, data) {
                var paramMap = kendo.data.transports.odata.parameterMap(options);
                var d = kendo.data.transports.odata.parameterMap(data);

                delete paramMap.$inlinecount;
                delete paramMap.$format;

                paramMap.$count = true;

                return paramMap;
            }
        },
        schema: {
            data: function (data) {
                return data.value;
            },
            total: function (data) {
                return data['odata.count'];
            },
            errors: function (data) {
            },
            model: {
                fields: {
                    Name: { type: "string" },
                    Age: { type: "string" },
                    Gender: {type:"string"}
                }
            },
            group: {
                field: "Gender"
            }
        },
        sort: {
            field: "Gender",
            dir: "asc"
        },
        sortable: true,
        pageable: true,
        groupable: true,
        filterable: true,
    });

    ds.fetch(function () {
        var data = this.data();
        for (var i = 0; i < data.length; i++) {

            rows.push({
                cells: [
                  { value: data[i].Name },
                  { value: data[i].Age},
                  { value: data[i].Gender}
                ]
            })
        }

        var workbook = new kendo.ooxml.Workbook({
            sheets: [
              {
                  columns: [
                    // Column settings (width)
                    { autoWidth: true },
                    { autoWidth: true },
                    { autoWidth: true }
                  ],
                  title: "Peaple_Report"
              }
            ]
        });
        //save the file as Excel file with extension xlsx
        kendo.saveAs({ dataURI: workbook.toDataURL(), fileName: "Test.xlsx" });
    });
});
$(“.export excel”)。单击(函数(){
var from=new Date($(“input#startDate”).val()),to=new Date($($“input#endDate”).val());
var ds=新的kendo.data.DataSource({
类型:“odata”,
运输:{
阅读:{
url:webApiUrl+
“/data/getdata(startDateString=””+
(from.getFullYear()+“-”+(from.getMonth()+1)+“-”+from.getDate())+
“,endDateString=”+(to.getFullYear()+“-”+(to.getMonth()+1)+“-”+to.getDate())+“”,
数据类型:“json”
},
parameterMap:功能(选项、数据){
var paramMap=kendo.data.transports.odata.parameterMap(选项);
var d=kendo.data.transports.odata.parameterMap(数据);
删除paramMap.$inlinecount;
删除paramMap.$格式;
paramMap.$count=true;
返回参数图;
}
},
模式:{
数据:函数(数据){
返回数据.value;
},
总计:功能(数据){
返回数据['odata.count'];
},
错误:函数(数据){
},
型号:{
字段:{
名称:{type:“string”},
年龄:{type:“string”},
性别:{type:“string”}
}
},
组:{
字段:“性别”
}
},
排序:{
字段:“性别”,
主管:“asc”
},
可排序:是的,
pageable:对,
分组:对,
可过滤:正确,
});
ds.fetch(函数(){
var data=this.data();
对于(变量i=0;i
高级版谢谢。

.data()方法在未排序或筛选时保留原始数据

当您应用任何筛选器、排序、分组或分页时。。。您应该从.view()方法读取数据。。。这将为您提供您正在查找的已排序/筛选数据

以下是.view()方法的文档-