Лучший формат для экспорта в MVC (CSV, XLS, PDF и т. Д.) - PullRequest
0 голосов
/ 07 декабря 2011

Привет, все, что я написал, приложение mvc, которое будет отображать много данных телефонных звонков для пользователя в таблице с нумерацией страниц.Объем данных, о которых здесь говорилось, составляет данные за один месяц, которые могут составлять около 950 000 записей.Пользователь попросил возможность экспортировать данные и просматривать их в «хорошем» чистом формате.Мне просто интересно, в каком формате лучше всего экспортировать эти данные, поскольку мы говорим об огромном количестве данных!Любые мысли будут высоко ценится!

Ответы [ 3 ]

3 голосов
/ 07 декабря 2011

Я думаю, лучший формат, который вы можете использовать, если вы хотите маленький размер файла - CSV.CSV - хороший формат для подобных вещей.Например, Excel также может открывать CSV.

Вы можете сделать следующее, чтобы предоставить пользователю возможность загрузки файла CSV без создания физического файла на жестком диске вашего сервера.

public ActionResult DownloadCsv(int id)
{
    //var data = ... // get the data for the id

    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment; filename=callData.csv");
    Response.ContentType = "text/csv";
    //write the column names
    Response.Write("Id;PhoneNr");

    //write the data
    foreach (var item in data)
    {
        Response.Write(String.Format("{0};{1}", item.Id, item.PhoneNr));
    }

    Response.End();
    return null;
}

надеюсь, это поможет

2 голосов
/ 07 декабря 2011

формат экспорта на самом деле не связан с технологией и средой на стороне сервера / клиента, которые вы используете, такими как ASP.NET MVC, WebForms, клиентское приложение Win Forms и т. Д. ...

первый вопрос, который вам следует задатьСпросите своего клиента, что ему нужно делать с экспортированными данными.

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

, если они просто хотят читать и архивировать с помощью базовой функции поиска и удобной печати, pdf может быть более подходящим.

фактически для экспорта в csvТривиальное / простое решение является вложенным для DataReader / DataTable, который вы получаете из базы данных и добавляете в StringBuilder, все это может происходить на стороне сервера, тогда вы просто передаете клиенту содержимое CSV для загрузки или высохраните его на сервере и дайте ссылку на него, или вы заархивируете его на стороне сервера и отправите по электронной почте ... все зависит от ваших требований.

Для PDF существует множество библиотек для генерации файлов Acrobat Reader ...

0 голосов
/ 07 декабря 2011

Это зависит от ваших требований. Я бы использовал формат CSV, поскольку он может быть легко импортирован вашим пользователем в электронную таблицу Excel. Есть некоторые технические проблемы, о которых вы хотите знать, такие как размер экспортируемых данных. В реализации, специфичной для MVC, я бы создал промежуточное представление, которое будет отображать сообщение о загрузке, а затем использовать пользователя перенаправления javascript на URL-адрес, который обрабатывается действием контроллера, которое будет отвечать за получение данных и их возврат пользователю. В методе действия вам следует вызвать бизнес-класс, который будет считывать ваши данные из базы данных, преобразовывать их в файл CSV, а затем архивировать содержимое с помощью ( Zip format ). Затем метод действия может вернуть пользователю результат FileStreamResult .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...