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();

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

      

  • 相关阅读:
    c语言博客作业09
    c语言|博客作业08
    C语言|博客作业07
    C语言|博客作业06
    C语言|博客作业05
    C语言|博客作业04
    C语言|博客作业03
    关于Vue.js里面输入框在v-model之后如果给其绑定属性赋初始值导致绑定数据不响应问题
    前后端分离开发模式中关于前端取得分页数据时的分页问题(前端使用ant design pro)
    《电子病案在病案管理中存在问题及对策》文献阅读随笔
  • 原文地址:https://www.cnblogs.com/shadow-fei/p/3386238.html
Copyright © 2011-2022 走看看