Excel基础(一)

 

 

 最近一直在搞关于Excel的东西,包括数据导入Excel和从Excel导入数据库。自己在公司没人教,学的好费劲,不过还好总算这方面学的能应用,具体深入的就不行了。经常看园里大神的帖子,收获不少,有技术的,有勉励的,挺好。

  准备工作

  确定机子上安装了Excel

  首先要引用程序集,分别添加在.net里面Microsoft.Office.Interop.Excel     12.0.0.0和COM里面Microsoft Excel 11.0 Object Library 1.5

  然后就是命名空间:

    using System.IO;

    using Microsoft.Office.Interop.Excel;

    using System.Reflection;

    using System.Data.OleDb;

  将数据导入Excel

  一、连接数据库

    定义:SqlConnection sql = new SqlConnection()

    数据库信息:sql.ConnectionString="Data Source="数据库地址(本地localhost)" ;Initial Catalog = "数据库名";User ID=“登录名”;Password=“密码”;"

    连接数据库:sql.Open();

    查询语句: SqlDataAdapter sda = new SqlDataAdapter ("查询语句 select * from table1;",sql);

    建立缓存,存储数据:DataSet sd = new DataSet();  //sd就是一个表,从0行,0列开始,与数据库查询的表一致

    将数据存储到sd中:sql.Fill(sd);

  二、建立Excel表

    定义:Excel.Application excelApp = new Excel.Application();

    建立工作簿:Excel.Workbook wBook = excelApp.Application.Workbooks.Add(Missing.Value);

    建立工作表:Worksheet wsheet0 = wBook.Worksheets[1];  wsheet.Name = "First";

    (如果不太理解这三个关系,可以看http://www.cnblogs.com/yangecnu/p/Excel-Object-Model.html这个比较详细)

  三、导入数据

    得到sd表的行数:  int rows = sd.Table[0].Rows.Count; 列数 : int cols = sd.Table[0].Columns.Count;

    循环:  for(i=0;i<rows;i++)

        {

          for(j=0;j<cols;j++)//Cells[i,j]表示Excel表的First工作薄的第i行,第j列,后面的GetValue是得到sd表的第i行的第j个数据

            {   wsheet0.Cells[i,j]  = sd.Tables[0].Rows[i].IntemArray.GetValue(j) ;    }

        }

  四、保存

    保存对话框: SaveFileDialog sfd= new SaveFileDialog();sfd.Title = “对话框左上的提示”;sfd.FileName =“保存文件的初始名”;sfd.Filter=“Excel文档(*.xls|*.xls)”//文件的格式。

    if(sfd.ShowDialog() == DialogResult.OK)//如果选择保存

      {  MessageBox.Show("导出成功");wBook.SaveAs(sfd.FileName);}

  五、释放

    wBook.Close();excelApp.Application.Workbooks.Close();excelApp.Application.Quit();excelApp.Quit();

    这就结束了,好少,感觉自己写的程序好多行...原来就这点东西,自己还搞了好长时间才明白个皮毛。囧。

  

posted on 2013-10-24 15:55  shadow_飛  阅读(310)  评论(0编辑  收藏  举报

Shadow