Страница 1 из 1

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

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

Подскажите, пожалуйста, можно ли это сделать?
Спасибо.

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

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

Спасибо.

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

Добавлено: 01 окт 2013, 12:25
Наталья
Здравствуйте.
В моем приложении, грубо говоря, 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 или на предварительный просмотр?
И еще вопрос. Источник данных будет иметь поле, по которому необходимо группировать данные, для каждой группировки должен быть отдельный график. Как можно график вставить в группировку?

Спасибо.

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

Добавлено: 01 окт 2013, 14:36
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 01 окт 2013, 17:04
Наталья
Здравствуйте.

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

Спасибо.

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

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

Спасибо.

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

Добавлено: 02 окт 2013, 18:00
Наталья
Здравствуйте.

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

Спасибо.

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

Добавлено: 03 окт 2013, 12:32
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 04 окт 2013, 11:42
Наталья
Здравствуйте.

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

Спасибо.

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

Добавлено: 04 окт 2013, 15:29
Aleksey
Здравствуйте,

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

Спасибо.