public void CreateExcel(DataTable ds)
    {
        HttpResponse resp;
        resp = Page.Response;
        resp.Buffer = false;
        resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        resp.ContentType = "application/octet-stream";
        resp.AddHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMdd") + ".xls");
        Response.AddHeader("Content-Transfer-Encoding", "binary");
        string colHeaders = "", ls_item = "";        //定义表对象与行对象,同时用DataSet对其值进行初始化 
        DataTable dt = ds;
        DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
        int i = 0;
        int cl = dt.Columns.Count;        //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符 
        for (i = 0; i < cl; i++)
        {
            if (i == (cl - 1))//最后一列,加n
            {
                colHeaders += dt.Columns[i].Caption.ToString() + "\n";
            }
            else
            {
                colHeaders += dt.Columns[i].Caption.ToString() + "\t";
            }        }
        resp.Write(colHeaders);
        //向HTTP输出流中写入取得的数据信息         //逐行处理数据   
        foreach (DataRow row in myRow)
        {
            //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据     
            for (i = 0; i < cl; i++)
            {
                if (i == (cl - 1))//最后一列,加n
                {
                    ls_item += row[i].ToString() + "\n";
                }
                else
                {
                    ls_item += row[i].ToString() + "\t";
                }            }
            resp.Write(ls_item);
            ls_item = "";        }
        resp.Write("</head>");
        resp.Flush();
        resp.End();
    } 
这是我生成.xls的问题件 的代码 可是 我生成的 文件保存类型是 HTML 而不是XLS 而且 resp.ContentType = "application/octet-stream";这个属性已经设置了  请问 代码怎么修改?还有  这是我导入 CSV文件的代码 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "@data source=" + filenameurl + ";Extended Properties='Text;HDR=YES';"; 
OleDbConnection conn = new OleDbConnection(strConn);
        OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
        DataSet ds = new DataSet();
        odda.Fill(ds, table);
        return ds;系统报错 提示 找不到可安装的 ISAM。 请问 怎么解决
当我用ODBC 数据源时string strConn = "Driver={Microsoft Text Driver (*.txt; *.csv)};@Dbq=";
        strConn += FileUpload1.PostedFile.FileName.ToString(); //filePath, For example: C:注重斜杠要用双反斜杠,而且不带文件名 
        strConn += ";Extended Properties=asc,csv,tab,txt,xls;HDR=YES';"; 
   OdbcConnection objConn = new OdbcConnection(strConn);
        DataSet dsCSV = new DataSet();
        string strSql = "select * from [Sheet2$]"; //fileName, For example: 1.csv 
        OdbcDataAdapter odbcCSVDataAdapter = new OdbcDataAdapter(strSql, objConn);
        odbcCSVDataAdapter.Fill(dsCSV);
        return dsCSV; 
系统报错提示 Microsoft Jet 数据库引擎找不到对象'Sheet2$.txt' 请问查询语句 格式怎么写?

解决方案 »

  1.   

    select * from CSV文件名#CSV把这个换成文件名就行了
      

  2.   


    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");
    HttpContext.Current.Response.Charset = Charset == "" ? "UTF-8" : Charset;
    HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
    HttpContext.Current.Response.ContentType = "application/ms-excel";case ".csv":
    filePath = filePath.Substring(0,filePath.LastIndexOf("\\")+1);
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Text;FMT=Delimited;HDR=YES;'";
    tsql = "SELECT * FROM  " + fname + extension;//XXX.csv
    sdff = "Csv";
      

  3.   

    啊哦 没这么麻烦 其实csv 文件 你用记事本打开看看就知道了 里面是 111,222,333 这样的逗号分割的文件
    具体你可以看下我以前的帖子 我以前弄过导入导出 话说这个有控件滴..