zoukankan      html  css  js  c++  java
  • 使用ADO.net将数据导出到Excel并提供下载

    参考Meyer的文章写的一个例子,原文地址
    http://www.cnblogs.com/meyer/articles/6977.html

    项目下载

    public string DataTableToExcel(DataTable dt,string excelPath)
            
    {
                
    if(dt == null)
                
    {
                    
    return "DataTable不能为空";
                }


                
    int rows = dt.Rows.Count;
                
    int cols = dt.Columns.Count;
                StringBuilder sb;
                
    string connString;

                
    if(rows == 0)
                
    {
                    
    return "没有数据";
                }


                sb 
    = new StringBuilder();
                connString 
    = string.Format(ConnectionString,excelPath);

                
    //生成创建表的脚本
                sb.Append("CREATE TABLE ");
                sb.Append(dt.TableName 
    + " ( ");

                
    for(int i=0;i<cols;i++)
                
    {
                    
    if(i < cols - 1)
                        sb.Append(
    string.Format("{0} varchar,",dt.Columns[i].ColumnName));
                    
    else
                        sb.Append(
    string.Format("{0} varchar)",dt.Columns[i].ColumnName));
                }


                
    using(OleDbConnection objConn = new OleDbConnection(connString))
                
    {
                    OleDbCommand objCmd 
    = new OleDbCommand();
                    objCmd.Connection 
    = objConn;

                    objCmd.CommandText 
    = sb.ToString();

                    
    try
                    
    {
                        objConn.Open();
                        objCmd.ExecuteNonQuery();
                    }

                    
    catch(Exception e)
                    
    {
                        
    return "在Excel中创建表失败,错误信息:" + e.Message;
                    }


                    
    生成插入数据脚本


                    
    //建立插入动作的Command
                    objCmd.CommandText = sb.ToString();
                    OleDbParameterCollection param 
    = objCmd.Parameters;

                    
    for(int i=0;i<cols;i++)
                    
    {
                        param.Add(
    new OleDbParameter("@" + dt.Columns[i].ColumnName, OleDbType.VarChar));
                    }


                    
    //遍历DataTable将数据插入新建的Excel文件中
                    foreach (DataRow row in dt.Rows)
                    
    {    
                        
    for (int i=0; i<param.Count; i++)
                        
    {
                            param[i].Value 
    = row[i]; 
                        }


                        objCmd.ExecuteNonQuery();
                    }


                    
    return "数据已成功导入Excel";
                }
    //end using
            }
  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/lingyun_k/p/298112.html
Copyright © 2011-2022 走看看