完整的代码如下:

using System;
using System.Data;
using System.Collections;
using System.Data.SqlClient;
using System.IO;
namespace DtsExcel
{
    
//****************************
    
//Create by chx of Telegnosis
    
//2007-3
    
//****************************

    
/// <summary>
    
/// 通过Dts把SQL数据库的数据导入到EXCEL
    
/// </summary>
    
/// 

    public class AppExportData
    
{
        
//DTS包对象
        public DTS.Package2Class ObjDTS;
        
//源文件路径
        private string dataBase; 
        
//目标文件路径 
        private string strDestinationFilePath;
        
//导出数据的SQL语句
        private string strSQL;
        
//目标表名
        private string strTableName;
        
//得到目标列名
        private ArrayList arrDestinationColumns;
        
//得到源数据列名
        private ArrayList arrSourceColumns;
        
//用户名
        private string connectionString;
        
//SQL服务器地址
        private string server;
        
/// <summary>
        
///数据库连接字符
        
/// </summary>

        public string Server
        
{
            
get
            
{
                
return server;
            }


            
set
            
{
                server 
= value;
            }

        }


        
/// <summary>
        
///数据库连接字符
        
/// </summary>

        public string ConnectionString
        
{
            
get
            
{
                
return connectionString;
            }


            
set
            
{
                connectionString 
= value;
            }

        }

        
        
私有属性

        
公共属性

        
构造函数

        
创建文件夹

        
导出的全过程

        
得到目标表的列名
    }


}

用法如下:
string strdespath="c:\\File\\File\\abc.xls";//该文件夹和文件都可以实际不存在,程序能自动创建
            string tablename="authors";    //表名(用于导入到EXCEL里Sheet的名字,对程序毫无用处)    
            
//以下几种都可以
            
// 第一种
//            string strsql="SELECT [au_lname]"+ 
//                " FROM [pubs].[dbo].[authors]";//要显示的列信息
//            //第二种
//            string strsql="SELECT [au_lname]"+ 
//                " FROM [pubs].[dbo].[authors] WHERE au_id='172-32-1176'";//要显示的列信息
            
//第三种
            string strsql="SELECT * "+ " FROM [pubs].[dbo].[authors]";//要显示的列信息
            string connctionstring="server=(local);uid=sa;pwd=;database=pubs";//数据库连接
            DtsExcel.AppExportData dtsclass=new DtsExcel.AppExportData(strdespath,tablename,strsql,connctionstring);
            
if(dtsclass.ExportData())//导出
            {
                
//成功;
            }
    

这种方式性能比较好,特别适用于数据量很大的情况,但是灵活性不高。各位看着用吧。
posted on 2007-04-09 18:57  过江  阅读(1177)  评论(1编辑  收藏  举报