转换为CSV?

时间:2012-04-25 19:32:09

标签: c# jquery asp.net-mvc

我是MVC的新手,并试图找到一种方法来执行以下操作:

基本上,我有一个网址http://dev.test.com/api/data/abczyz12345,当从用户界面点击/打开时,结果显示为:

"email","f_name","l_name","c_name","ids" "abc1@test.com","C G","Wander","C1","" "abc2@Atest.COM","Virginia","Dale","A & D","" .... and so on....

在我的视图中,我将上述链接显示为锚点,当用户点击它时 - 它会在同一页面上打开。 有没有办法当用户点击链接时 - 而不是在网页上打开它作为CSV文件打开(给用户提供下载选项)?

3 个答案:

答案 0 :(得分:1)

是的,您必须使用HTTP标头指定它所使用的文件类型。以下是使用PHP的示例:

header('Content-type: application/csv');
header('Content-Disposition: attachment; filename="filename.csv"');

echo '"email","f_name"...

浏览器会将输出识别为CSV并相应地做出响应,很可能是文件下载提示。

ASP.net也是如此,但我不确定它是如何完成的。

答案 1 :(得分:1)

public ActionResult Index()
{
    Response.Clear();
    Response.Clear();
    Response.ContentType = "application/CSV";
    Response.AddHeader("content-disposition", "attachment; filename=\"filename.csv\"");
    String temp = "email,f_name,l_name,c_name,ids,abc1@test.com,CG,Wander,C1,abc2@Atest.COM,Virginia,Dale,A & D";
    Response.Write(temp);
    Response.End();
    return View();
}

答案 2 :(得分:0)

有几种方法可以解决这个问题,我不能完全确定目标受众,环境以及这些数据的总体目标。

我将使用厨房水槽路线(您可以使用页面中的数据并允许将其导出到文件中):

您可以使用jquery将数据包装到文件中以供下载。

本教程在服务器端使用php,但如果我了解您的要求,则需要在客户端处理该数据:

http://tutorialzine.com/2011/05/generating-files-javascript-php/

参见以下部分: 资产/的script.js

摘录:

$(document).ready(function(){

    $('#download').click(function(e){

        $.generateFile({
            filename    : 'export.txt',
            content     : $('textarea').val(),
            script      : 'download.php'
        });

        e.preventDefault();
    });

    $('#downloadPage').click(function(e){

        $.generateFile({
            filename    : 'page.html',
            content     : $('html').html(),
            script      : 'download.php'
        });

        e.preventDefault();
    });

});

动态生成文档的一个很好的例子。