Вопрос по – Экспорт нескольких элементов управления XtraGrid в один файл Excel

1

У меня есть несколько элементов управления XtraGrid, каждый из которых содержит различную информацию, я получаю некоторую информацию о том, как можно экспортировать XtraGrid в файл Excel в следующем направлении.http://www.devexpress.com/Support/Center/p/Q362120.aspx

Есть ли способ экспортировать каждый элемент управления XtraGrid в один файл Excel, чтобы каждая информация XtraGrid экспортировалась в другой лист Excel.

Я попытался задать направление пути экспорта для того же файла Excel, но когда первый процесс экспорта завершен, второй процесс экспорта просто переопределяет файл Excel и так далее.

Я пытался использовать метод, описанный в этом направленииXtraGrid - экспорт в Excel , но я хотел знать, есть ли другой способ без использования библиотек interop excel, потому что у меня возникли некоторые проблемы при использовании этой библиотеки (я имею в виду, что при использовании этой библиотеки вы создаете процесс Excel, но после того, как вы создали его, вы не можете его убить, даже если хотя вы использовали метод, который должен сделать это).

Любая помощь будет приветствоваться.

Ваш Ответ

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

Надеюсь, это сэкономит кому-то немного времени.

Error: User Rate Limit Exceeded
-1

compositeLink.ExportToXlsx не удалось для меня - нет такого метода. Конечно, я использую V10.2.5, который является старым. Я предлагаю эту ссылку с сайта DEVXPRESS, который используетShowPreviewDialog method which allows exporting in a number of different formats. The link also shows how to do some customization of the output. https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraPrintingLinksCompositeLinktopic

2

rol, а затем создать составную ссылку, к которой вы можете добавить каждую из ссылок printableComponent.

Эта ссылка может доказать DevExpressСтатья КБ может оказаться полезным, поскольку у него есть пример этого.

Тогда вы будете использоватьcompositeLink.ExportToXlsx метод. Если вы создаетеXlsxExportOptions сXlsxExportOptions.ExportMode свойство равноеSingleFilePageByPage и передать егоCompositeLink.ExportToXlsx Метод, каждая страница будет экспортирована на отдельный лист.

Похожие вопросы