Выгрузка данных в Excel

Обсуждение Stimulsoft Reports.NET
Ответить
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Выгрузка данных в Excel

Сообщение Наталья »

Здравствуйте.
Есть такая задача.
Необходимо сделать выгрузку данных в Excel.
Я формирую запрос, полученный результат записываю в таблицу dataTable (сложные вычисления, запросом не решить).
Далее мне нужно программно создать отчет, добавить туда в качестве источника данных эту таблицу (можно ли это сделать?), создать переменные, страницу с бэндами + график, настроенный на отображение полученных данных, сформировать отчет и сохранить в Excel. При этом все делать в потоке, не создавая файл отчета на диске.

Подскажите, пожалуйста, можно ли это сделать?
Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Выгрузка данных в Excel

Сообщение HighAley »

Здравствуйте, Наталья.
Наталья писал(а):Необходимо сделать выгрузку данных в Excel.
Я формирую запрос, полученный результат записываю в таблицу dataTable (сложные вычисления, запросом не решить).
Далее мне нужно программно создать отчет, добавить туда в качестве источника данных эту таблицу (можно ли это сделать?), создать переменные, страницу с бэндами + график, настроенный на отображение полученных данных, сформировать отчет и сохранить в Excel. При этом все делать в потоке, не создавая файл отчета на диске.
Уточните, пожалуйста, вы хотите в итоге получить файл или экспортировать в приложение Excel? У нас возможен только первый вариант. Всё остальное возможно сделать используя MemoryStream.

Спасибо.
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Выгрузка данных в Excel

Сообщение Наталья »

Здравствуйте.
В моем приложении, грубо говоря, 2 кнопки: 1 - предварительный просмотр, 2 - экспорт в Excel.
Т.е. пользователь нажимает на кнопку 1:

Код: Выделить всё

_report = CreateReport(); //здесь нужно будет вручную создать все бэнды, колонки и график, файл не должен храниться локально на диске
DataTable tb = CreateData();
_report.RegData(tb);
_report.Show();
пользователь нажимает на кнопку 2:

Код: Выделить всё

_report = CreateReport();
DataTable tb = CreateData();
_report.RegData(tb);
_report.Render(true);
_report.ExportDocument(StiExportFormat.Excel2007, "C:\\Report.xlsx");
Т.е. мне нужно будет создать на ходу отчет, записать в MemoryStream, а потом выгружать в Excel или на предварительный просмотр?
И еще вопрос. Источник данных будет иметь поле, по которому необходимо группировать данные, для каждой группировки должен быть отдельный график. Как можно график вставить в группировку?

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Выгрузка данных в Excel

Сообщение HighAley »

Здравствуйте.

Если вы создаёте отчёт в коде, то использовать MemoryStream не надо.
Пример как создать график в коде вы можете найти в нашей базе знаний.

Спасибо.
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Выгрузка данных в Excel

Сообщение Наталья »

Здравствуйте.

Еще немного уточню, в чем у меня сейчас проблема.
Мне нужно, чтобы график строился для каждой группы и отображался под группой, для которой построен. А у меня отображается под каждой группой, но построен на основе всех данных, без учета группировки. Как можно для графика указать, чтобы он строился для текущей группы?

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Выгрузка данных в Excel

Сообщение HighAley »

Здравствуйте.
Наталья писал(а):Еще немного уточню, в чем у меня сейчас проблема.
Мне нужно, чтобы график строился для каждой группы и отображался под группой, для которой построен. А у меня отображается под каждой группой, но построен на основе всех данных, без учета группировки. Как можно для графика указать, чтобы он строился для текущей группы?
Надо задать нужные значения свойствам Data Relation(Связь) и Data Source(Источник данных) у диаграммы.
Пример отчёта вы можете увидеть в нашем Демо: Charts - Chart with DataBand.

Спасибо.
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Выгрузка данных в Excel

Сообщение Наталья »

Здравствуйте.

Что-то не получилось у меня применить "связь", возникает ошибка "ParentKey and ChildKey are identical."
Во вложении тестовый проект и отчет. Посмотрите, пожалуйста.
В источнике данных 2 группы: "name" и "name2".

Спасибо.
Вложения
TestReport.rar
(13.77 КБ) 176 скачиваний
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Выгрузка данных в Excel

Сообщение HighAley »

Здравствуйте.

Не совсем понятно что вы пытаетесь сделать. Создавать связи поля из источника данных с ним же в принципе неправильно. Ошибка об этом вам и говорит.

Спасибо.
Наталья
Сообщения: 110
Зарегистрирован: 19 фев 2009, 06:37

Re: Выгрузка данных в Excel

Сообщение Наталья »

Здравствуйте.

Подскажите, пожалуйста, а как можно зарегистрировать 2 источника данных в одном подключении?
Сейчас я добавляю один источник данных с помощью _report.RegData(dt);

Спасибо.
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Выгрузка данных в Excel

Сообщение Aleksey »

Здравствуйте,

В данном случае, вы можете у себя в коде добавить необходимые таблицы в один DataSet и уже его регестрировать с помощью метода RegData().

Спасибо.
Ответить