正文

用ODBC导出数据到Excel中2007-10-19 09:44:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/tujun/30209.html

分享到:

数据导出到Excel不一定要用Office的COM,利用ODBC也可以做到!   定义一个连接Excel文件的连接字符串: String excelSql = @"Driver={Microsoft Excel Driver (*.xls)};READONLY=FALSE;DriverId=790;Dbq={0};DefaultDir=c:\;" ; 其中的{0}要实际替换为目标文件的路径和全名. this.saveFileDialog1.Filter = "Excel文件.xls | *.xls"; string saveFileName  = "";   DialogResult dr = this.saveFileDialog1.ShowDialog();   if(dr != DialogResult.Cancel)   {    saveFileName = saveFileDialog1.FileName;    if(File.Exists(saveFileName))    {     File.Delete(saveFileName);//删除目标文件    }      File.Copy("Book1.xls",saveFileName,true);//复制母板文件为目标文件 } else {  return;//保存文件对话框中选择了'取消' } String conSql =excelSql.Replace("{0}",saveFileName);//替换连接字符串中的占位符 OdbcConnection cnn = new OdbcConnection(conSql); try{ cnn.Open();//打开连接 } catch { return;//打开连接失败,退出 } ///下面在Excel文件中创建一个sheet String sql = @"CREATE TABLE [新增Sheet] (        [姓名] varchar(32),        [单位名称] varchar(200)        )";      OdbcCommand cmd = new OdbcCommand(sql,cnn);      try      {       cmd.ExecuteNonQuery();      }      catch      {       cnn.Close();       cmd.Dispose();       MessageBox.Show("导出失败!",this.title);       return;      }      cmd.Dispose();       sql = @"Select * from [新增Sheet]";       cmd = new OdbcCommand(sql,cnn);      DataSet newDs = new DataSet();       OdbcDataAdapter adp = new OdbcDataAdapter(cmd);//生成DataAdapter       try      {       adp.Fill(newDs);//生成一个空的数据集      }      catch      {       adp.Dispose();       newDs.Dispose();       cnn.Close();       cmd.Dispose();       MessageBox.Show("导出失败!",this.title);       return;            }      DataSet ds = (DataSet)this.listView1.Tag;//listView1.Tag中保存的是要导出的dataset      foreach(DataRow row in ds.Tables[0].Rows)//往目标数据集复制数据      {       DataRow newRow  = newDs.Tables[0].NewRow();       newRow["姓名"] = row["姓名"];       newRow["单位名称"] = row["单位名称"];        newDs.Tables[0].Rows.Add(newRow);      }      OdbcCommandBuilder cb = new OdbcCommandBuilder(adp);//生成插入数据需要的Command      int k = adp.Update(newDs);//插入数据到Excel中      adp.Dispose();      cnn.Close();      cmd.Dispose();      cb.Dispose();      MessageBox.Show("导出成功,共导出" + k.ToString() + "条数据,文件保存在:" + saveFileName,       this.title);

阅读(4366) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册