zoukankan      html  css  js  c++  java
  • 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();

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

      

  • 相关阅读:
    SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。 Anti
    SDUT ACM 1002 Biorhythms 中国剩余定理 Anti
    nyist OJ 119 士兵杀敌(三) RMQ问题 Anti
    SDUT ACM 2157 Greatest Number Anti
    SDUT ACM 2622 最短路径 二维SPFA启蒙题。。 Anti
    二叉索引树 区间信息的维护与查询 Anti
    SDUT ACM 2600 子节点计数 Anti
    UVA 1428 Ping pong 二叉索引树标准用法 Anti
    2010圣诞Google首页效果
    Object
  • 原文地址:https://www.cnblogs.com/shadow-fei/p/3386238.html
Copyright © 2011-2022 走看看