使用带有格式化文本的 ASPxGridViewExporter 将 ASPxGridView 导出到 xlsx
Export ASPxGridView to xlsx using ASPxGridViewExporter with formatted text
我有一个 ASPxGridView
,它有许多列(GridViewDataComboBoxColumn
或 GridViewDataHyperLinkColumn
类型)。在网格的 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 千瓦时
- 311 千瓦时
- 2,254 千瓦时
但是导出后 xlsx 文件中的这些值看起来像
- 32332
- 311
- 2254
我的问题是:可以使用 [=16] 将 ASPxGridView
导出到 excel 文件,该文件在 excel 文件的单元格中具有与网格视图完全相同的文本=]?
ASPxGridViewExporter 按值导出网格内容,而不是显示文本。创建 XlsxExportOptions class, set its TextExportMode property to Text, and use this instance during exporting. Here is a corresponding ticket on DevExpress Support Center: 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 问题单中描述的问题。这张工单提供了一个解决方案。
试试这个。
<asp:UpdatePanel runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="lnkXlsxExport" />
</Triggers>
</asp:UpdatePanel>
我有一个 ASPxGridView
,它有许多列(GridViewDataComboBoxColumn
或 GridViewDataHyperLinkColumn
类型)。在网格的 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 千瓦时
- 311 千瓦时
- 2,254 千瓦时
但是导出后 xlsx 文件中的这些值看起来像
- 32332
- 311
- 2254
我的问题是:可以使用 [=16] 将 ASPxGridView
导出到 excel 文件,该文件在 excel 文件的单元格中具有与网格视图完全相同的文本=]?
ASPxGridViewExporter 按值导出网格内容,而不是显示文本。创建 XlsxExportOptions class, set its TextExportMode property to Text, and use this instance during exporting. Here is a corresponding ticket on DevExpress Support Center: 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 问题单中描述的问题。这张工单提供了一个解决方案。
试试这个。
<asp:UpdatePanel runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="lnkXlsxExport" />
</Triggers>
</asp:UpdatePanel>