1

それぞれ異なる情報を含むいくつかのXtraGridコントロールがあります。XtraGridを次の方向でExcelファイルにエクスポートする方法に関する情報を取得しますhttp://www.devexpress.com/Support/Center/p /Q362120.aspx

ここで、各XtraGridコントロールを単一のExcelファイルにエクスポートして、すべてのXtraGrid情報が異なるExcelシートにエクスポートされるようにする方法はありますか。

エクスポートパスの方向を同じExcelファイルに設定しようとしましたが、最初のエクスポートプロセスが完了すると、2番目のエクスポートプロセスはExcelファイルなどを上書きするだけです。

この方向で説明されている方法を使用してみましたXtraGrid-Excelにエクスポートしますが、このライブラリを使用するときにいくつかの問題が発生したため、相互運用Excelライブラリを使用しない別の方法があるかどうかを知りたいと思いましたExcelプロセスですが、作成した後は、それを実行するはずのメソッドを使用したとしても、強制終了することはできません)。

どんな助けでも歓迎されます。

4

3 に答える 3

4

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);
            }
        }
    }
}    

誰かが少し時間を節約できることを願っています。

于 2013-06-20T20:04:03.227 に答える
2

そのためには、printableComponentLink を各 gridControl に追加してから、各 printableComponent リンクを追加できる compositeLink を作成します。

このリンクは、その例があるため、DevExpress KB 記事が役立つことを証明する可能性があります。

次に、compositeLink.ExportToXlsxメソッドを使用します。等しいプロパティで作成XlsxExportOptionsしてメソッドに渡すと、すべてのページが別のシートにエクスポートされます。XlsxExportOptions.ExportModeSingleFilePageByPageCompositeLink.ExportToXlsx

于 2012-04-25T16:13:08.390 に答える
-1

上記のコードでは、compositeLink.ExportToXlsx失敗しました-そのような方法はありません。もちろん古いV10.2.5を使っています。ShowPreviewDialogさまざまな形式でエクスポートできる方法を使用する DEVXPRESS サイトからのこのリンクをお勧めします。このリンクには、出力をカスタマイズする方法も示されています。 https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraPrintingLinksCompositeLinktopic

于 2014-12-19T18:38:22.450 に答える