Asp.net 使用MVC导出到的最佳格式(CSV、XLS、PDF等)

Asp.net 使用MVC导出到的最佳格式(CSV、XLS、PDF等),asp.net,asp.net-mvc,sql-server-2008,c#-4.0,Asp.net,Asp.net Mvc,Sql Server 2008,C# 4.0,大家好,我已经编写了一个mvc应用程序,它将在一个带有分页的表中向用户显示大量电话呼叫数据。这里所说的数据量是一个月的数据,可能是950000条记录。用户要求能够导出数据并以“良好”的清晰格式查看。我只是想知道什么是最好的格式导出这些数据,因为我们正在谈论大量的数据!任何想法都将不胜感激 导出格式与您正在使用的服务器/客户端技术和框架(如ASP.NET MVC、WebForms、Windows Forms win客户端应用程序等)没有真正的关系 您应该问客户的第一个问题是他需要如何处理导出的数据

大家好,我已经编写了一个mvc应用程序,它将在一个带有分页的表中向用户显示大量电话呼叫数据。这里所说的数据量是一个月的数据,可能是950000条记录。用户要求能够导出数据并以“良好”的清晰格式查看。我只是想知道什么是最好的格式导出这些数据,因为我们正在谈论大量的数据!任何想法都将不胜感激

导出格式与您正在使用的服务器/客户端技术和框架(如ASP.NET MVC、WebForms、Windows Forms win客户端应用程序等)没有真正的关系

您应该问客户的第一个问题是他需要如何处理导出的数据

如果他们想要编辑或过滤/透视数据,
csv
可能是一个不错的选择,因为他们可以直接用excel打开这些文件并使用这些文件

如果他们只是想通过基本的搜索功能和简单的打印来阅读和存档,
pdf
可能更合适

事实上,要导出到
csv
简单/简单的解决方案是在
DataReader
/
DataTable
上嵌套,您可以从数据库中获取并附加到StringBuilder,这一切都可以在服务器端发生,然后您只需将csv内容向下流到客户端下载,或者将其保存在服务器上并提供链接,或者你把它压缩到服务器端,通过电子邮件发送。。。这完全取决于你的要求


对于
PDF
有很多库可以生成那些acrobat reader文件…

导出格式与您正在使用的服务器/客户端技术和框架(如ASP.NET MVC、WebForms、Windows Forms win客户端应用程序等)没有真正的关系

您应该问客户的第一个问题是他需要如何处理导出的数据

如果他们想要编辑或过滤/透视数据,
csv
可能是一个不错的选择,因为他们可以直接用excel打开这些文件并使用这些文件

如果他们只是想通过基本的搜索功能和简单的打印来阅读和存档,
pdf
可能更合适

事实上,要导出到
csv
简单/简单的解决方案是在
DataReader
/
DataTable
上嵌套,您可以从数据库中获取并附加到StringBuilder,这一切都可以在服务器端发生,然后您只需将csv内容向下流到客户端下载,或者将其保存在服务器上并提供链接,或者你把它压缩到服务器端,通过电子邮件发送。。。这完全取决于你的要求


对于
PDF
有很多库可以生成那些acrobat reader文件…

我认为如果你想要小文件大小,最好的格式是
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;
}

希望这对您有所帮助

如果您想要小文件大小,我认为最好的格式是
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;
}

希望这有帮助

这取决于您的需求。我会使用CSV格式,因为您的客户可以轻松地将其导入Excel电子表格。您需要注意一些技术问题,例如要导出的数据的大小。在特定于MVC的实现中,我将创建一个中间视图,该视图将显示一条加载消息,然后使用javascript将用户重定向到一个url,该url由负责获取数据并将其返回给用户的控制器操作处理。在操作方法中,您应该调用您的业务类,该类将从数据库读取您的数据,转换为CSV文件,然后使用()压缩内容。然后,Action方法可以将结果返回给用户

这取决于您的要求。我会使用CSV格式,因为您的客户可以轻松地将其导入Excel电子表格。您需要注意一些技术问题,例如要导出的数据的大小。在特定于MVC的实现中,我将创建一个中间视图,该视图将显示一条加载消息,然后使用javascript将用户重定向到一个url,该url由负责获取数据并将其返回给用户的控制器操作处理。在操作方法中,您应该调用您的业务类,该类将从数据库读取您的数据,转换为CSV文件,然后使用()压缩内容。然后,Action方法可以将结果返回给用户