使用带格式化文本的ASPxGridViewExporter将ASPxGridView导出到xlsx

时间:2015-01-13 10:24:38

标签: asp.net excel devexpress aspxgridview

我的ASPxGridView有多列(类型为GridViewDataComboBoxColumnGridViewDataHyperLinkColumn)。在网格CustomColumnDisplayText事件后面的代码中,我按以下方式格式化单元格的文本:

protected void MyGrid_CustomColumnDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDisplayTextEventArgs e)
{
    if (e.Column is DevExpress.Web.ASPxGridView.GridViewDataColumn)
    {
        switch (e.Column.FieldName)
        {
            case "Energy":
                if (e.Value is float)
                {
                    // the FormatEnergy method here returns for example "323.32 kWh"
                    e.DisplayText = DataDisplayTools.Instance.FormatEnergy((float)e.Value);
                }
                break;

                // other cases

        }
    }
}

为了以 .xlsx 格式导出网格视图,我使用ASPxGridViewExporter

protected void lnkXlsxExport_Click(object sender, EventArgs e)
{
    try
    {
        gridViewExporter.DataBind();
        gridViewExporter.WriteXlsxToResponse();
    }
    catch (Exception e1)
    {
        //
    }
}

我的问题是,当我将网格视图导出到 .xlsx 时,导出文件中列的值不会像网格视图中那样格式化。 例如,网格视图中的值(它们在CustomColumnDisplayText事件中格式化)是

  • 32,332 kWh
  • 311 kWh
  • 2,254 kWh

但导出后 xlsx 文件中的这些值显示为

  • 32332
  • 311
  • 2254

enter image description here

我的问题是:可以使用ASPxGridViewASPxGridViewExporter导出到excel文件单元格中具有完全相同文本的excel文件中,使用{{1}}?

2 个答案:

答案 0 :(得分:1)

ASPxGridViewExporter按值导出网格内容,而不是显示文本。创建XlsxExportOptions类的实例,将其TextExportMode属性设置为Text,并在导出期间使用此实例。以下是DevExpress支持中心的相应票证:ASPxGridView - The CustomColumnDisplayText event doesn't not work when exporting to Excel after upgrading from v.9.2 to v.13.2

您可能还会遇到ASPxGridView / MVC GridView Extension - Excel Data Aware Export FAQ票证中描述的问题。此票证提供了解决方案。

答案 1 :(得分:0)

尝试一下。

 Toast.makeText(this@HomeFragment, "saving", Toast.LENGTH_SHORT).show()