导出几个XtraGrid中控制到一个Excel文件(Exporting Several XtraGr

2019-06-23 23:23发布

我有几个XtraGrid中控制含有不同信息的每一个,我得到的方式的一些信息中,你可以在以下方向的XtraGrid中导出到Excel文件http://www.devexpress.com/Support/Center/p /Q362120.aspx

现在有什么办法给每个XtraGrid中控制导出到一个Excel文件,让每一位XtraGrid中的信息导出到一个不同的Excel工作表。

我尝试设置导出路径方向相同的Excel文件,但是当第一个导出过程完成后,第二导出过程改写了Excel文件等。

我试着用在这个方向上所描述的方法XtraGrid中-导出到Excel ,但我想练成库,因为我有经验,使用这个库创建时使用这个库(我的意思是,当一些问题知道是否有另一种方式内部消除使用互操作一个Excel的过程,但你创建后,你不能杀它,即使你使用的是应该这样做)的方法。

任何帮助将受到欢迎。

Answer 1:

要做到这一点,你会想一个printableComponentLink添加到每个gridControl,然后创建一个compositeLink,您可以添加每个printableComponent链接的。

此链接可能被证明DevExpress的知识库文章 ,因为它有这样一个例子可以证明是有用的。

然后,你将使用compositeLink.ExportToXlsx方法。 如果创建XlsxExportOptionsXlsxExportOptions.ExportMode属性等于SingleFilePageByPage并把它传递给CompositeLink.ExportToXlsx方法,每一页都将被导出到一个单独的表。



Answer 2:

我只是想提供一个更完整的答案,因为过了好一会儿,我得到一个解决方案一起使用d ..的答案。

是的 - 它看起来像我想打印的东西,但我只是导出到Excel,我保证。

using DevExpress.XtraPrinting;
using DevExpress.XtraPrintingLinks;
using DevExpress.XtraGrid;

class whatever
{
    GridControl grid1;
    GridControl grid2;
    //.....

    public void exportToExcel()
    {
        using (var saveDialog = new SaveFileDialog())
        {
            saveDialog.Filter = "Excel (.xlsx)|*.xlsx";
            if (saveDialog.ShowDialog() == DialogResult.OK)
            {
                var printingSystem = new PrintingSystemBase();
                var compositeLink = new CompositeLinkBase();
                compositeLink.PrintingSystemBase = printingSystem;

                var link1 = new PrintableComponentLinkBase();
                link1.Component = grid1;
                var link2 = new PrintableComponentLinkBase();
                link2.Component = grid2;

                compositeLink.Links.Add(link1);
                compositeLink.Links.Add(link2);

                var options = new XlsxExportOptions();
                options.ExportMode = XlsxExportMode.SingleFilePageByPage;

                compositeLink.CreatePageForEachLink();
                compositeLink.ExportToXlsx(saveDialog.FileName, options);
            }
        }
    }
}    

希望这样可以节省别人一点点的时间。



Answer 3:

在上面的代码中, compositeLink.ExportToXlsx失败对我来说-没有这样的方法。 当然,我使用的V10.2.5,这是旧的。 我建议从使用的DEVXPRESS网站此链接ShowPreviewDialog方法,它允许以许多不同的格式导出。 链接也显示了如何做输出的一些定制。 https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraPrintingLinksCompositeLinktopic



文章来源: Exporting Several XtraGrid Controls to a Single Excel File