J'utilise 2 ASPxGridView différents dans un onglet différent. Je veux exporter ces ASPxGridViews avec différentes feuilles dans le même fichier Excel.Exporter plusieurs ASPxGridView vers un fichier Excel avec différentes feuilles
Je peux exporter plusieurs ASPxGridViews dans 1 Excel mais aussi 1 feuille.
protected void ExportButton_Click(object sender, EventArgs e)
{
PrintingSystem ps = new PrintingSystem();
PrintableComponentLink link1 = new PrintableComponentLink(ps);
link1.Component = GridExporter1;
PrintableComponentLink link2 = new PrintableComponentLink(ps);
link2.Component = GridExporter2;
CompositeLink compositeLink = new CompositeLink(ps);
compositeLink.Links.AddRange(new object[] { link1, link2 });
compositeLink.CreateDocument();
using (MemoryStream stream = new MemoryStream())
{
compositeLink.PrintingSystem.ExportToXls(stream);
WriteToResponse("filename", true, "xls", stream);
}
ps.Dispose();
}
void WriteToResponse(string fileName, bool saveAsFile, string fileFormat, MemoryStream stream)
{
if (Page == null || Page.Response == null)
return;
string disposition = saveAsFile ? "attachment" : "inline";
Page.Response.Clear();
Page.Response.Buffer = false;
Page.Response.AppendHeader("Content-Type", string.Format("application/{0}", fileFormat));
Page.Response.AppendHeader("Content-Transfer-Encoding", "binary");
Page.Response.AppendHeader("Content-Disposition",string.Format("{0}; filename={1}.{2}", disposition, fileName, fileFormat));
Page.Response.BinaryWrite(stream.GetBuffer());
Page.Response.End();
}
ceci est mon article:
<dx:ASPxGridView ID="ASPxGridView1" runat="server" Theme="DevEx">
<Settings ShowGroupPanel="True" />
<SettingsPager PageSize="15" />
</dx:ASPxGridView>
<dx:ASPxGridView ID="ASPxGridView2" runat="server" Theme="Office2010Silver">
</dx:ASPxGridView>
<dx:ASPxButton ID="ExportButton" runat="server" Text="Export both grids" Width="205px" OnClick="ExportButton_Click" />
<dx:ASPxGridViewExporter ID="GridExporter1" runat="server" GridViewID="ASPxGridView1" />
<dx:ASPxGridViewExporter ID="GridExporter2" runat="server" GridViewID="ASPxGridView2" /><br />