【问题标题】:How to achieve Import/Export on button click from grid view to excel sheet using asp.net mvc如何使用asp.net mvc实现从网格视图到Excel工作表的按钮单击导入/导出
【发布时间】:2010-03-05 18:16:06
【问题描述】:

我有一个带有数据的网格视图。我需要使用 asp.net mvc 将一个按钮导出/导入该 gridview 数据到 excel 工作表。

谁能帮我看看怎么做。

谢谢。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您可以绕过 excel 自动化并像这样使用 OleDbConnection

    connectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;'";
    ...
    
    connectionString = string.Format(connectionString, fileName);
    OleDbConnection conn = new OleDbConnection(connectionString)
    .............
    // You can create table or insert value using SQL statement 
    // Create your OleDbCommand and execute it. 
    ............
    conn.Close();
    

    【讨论】:

      【解决方案2】:

      如果数据要由客户端提交,则将其 POST 到服务器。一旦它在服务器上,创建一个 StringBuilder 并将数据转换为一个大字符串,在每行之后使用逗号作为列分隔符和换行符。然后返回一个新的 FileResult:

      在您的控制器中,创建 StringBuilder sb 后:

      MemoryStream ms = new MemoryStream();
      StreamWriter writer = new StreamWriter(ms, Encoding.UTF8);
      writer.Write(sb.ToString());
      writer.Flush();
      ms.Position = 0;
      
      return File(ms, "application/vnd.ms-excel", "myfile.csv");
      

      导入 Excel 数据是另一回事。我没有做太多这方面的工作,所以希望其他人能够就此提供一些见解。

      【讨论】:

        【解决方案3】:

        要从 excel 导入,请照常上传文件。 然后参考 Microsoft.Office.Interop.Excel.dll(来自 office 11),您可以使用 excel api 遍历工作表并提取数据。

        【讨论】:

          【解决方案4】:

          我的建议是使用 LocalReport 来呈现结果。您只需使用所需的布局创建一个 rdlc 文件(在项目中添加新报告)。然后您必须传递您希望绑定的数据并调用 Render 方法(您可以返回 excel 和 pdf)。老实说,我手头没有任何示例代码,但如果你用谷歌搜索一下,你肯定会知道怎么做。 祝你好运。

          【讨论】:

            猜你喜欢
            • 2023-04-11
            • 2017-06-16
            • 2020-10-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多