如何在导出 Kendo 数据表格到 Excel 时修改数值?

3

所以,我正在寻找一种方法来修改导出到Excel中的值,就像使用ClientTemplate()修改Kendo Grid中的值一样。目前,我的导出Excel的方式是通过这种方法:

.Excel(excel => excel
        .FileName("InvitedList.xlsx")
        .AllPages(true)
        .Filterable(true)

我正在以下方式使用 .ClientTemplate()

@(Html.Kendo().Grid<(TableLocation)>()
        .Name("List of Invited")
        .Columns(col => {
            ...Some Columns...
            columns.Bound(p => p.RSVP).Title("Is Attending?").Width(75).ClientTemplate("#if(RSVP == 0){#No#}else{#Yes#}#");
            ...More Columns...
        })
        .ToolBar(toolbar => {
            toolbar.Excel();
        })
        ...
        .Excel(excel => excel
            .FileName("InvitedList.xlsx")
            .AllPages(true)
            .Filterable(true)
        )
        ...
        .DataSource(dataSource => dataSource
            .Ajax()
            ...
        )
)

我在StackOverflow中没有找到方法,而Telerik文档似乎只有脚本解决方案,而我正在寻找一种从cshtml页面上的@转义的方法。

谢谢任何建议!

编辑:添加了一些更多细节,希望能够澄清一些疑虑。


你正在使用哪种数据绑定? - Matt Millican
@mmillican 我相信我正在使用 gridBinding - Sammy I.
你是使用.Server()还是.Ajax()绑定数据源? - Matt Millican
@mmillican 我正在使用.Ajax() - Sammy I.
1个回答

0

如果您查看他们的示例(http://demos.telerik.com/aspnet-mvc/grid/excel-export),似乎ClientTemplate()格式将被导出到Excel。

但请注意,您提到使用@转义-这在ClientTemplates中不起作用。您必须使用它们的语法,例如:

.ClientTemplate("#=myValue#")

.ClientTemplate() 在网站上运行正常(显示“参加”或“不参加”,而不是1或0),但在导出到Excel时,列上会显示0或1。您能否更具体地说明不使用@转义?我目前正在使用它来制作整个网格,而不仅仅是.ClientTemplate()方法。 - Sammy I.
请问您能否编辑您的问题并包含整个网格定义? - Matt Millican
我认为我没有添加整个定义的权限,但我会编辑它以包含更多细节。 - Sammy I.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接