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