• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#读取Excel内容

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一.方法

  1.OleD方法实现该功能。

  2.本次随笔内容只包含读取Excel内容,并另存为。

 

二.代码

  (1)找到文档代码

  OpenFileDialog openFile = new OpenFileDialog();
            openFile.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";
            openFile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            openFile.Multiselect = false;
            if (openFile.ShowDialog() == false) { return; }
            
            var filePath = openFile.FileName;
            string fileType = System.IO.Path.GetExtension(filePath)

 

  (2)打开文档代码

string connStr = "";
            if (fileType == ".xls")
                connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
            else
                connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
            string sql_F = "select *  from [sheet1$]";

            OleDbConnection conn = null;
            OleDbDataAdapter da = null;

            try
            {
                conn = new OleDbConnection(connStr);
                conn.Open();

  sql_F是Linq语句,查询sheet1内所有数据,如果有特定筛选可以把*换成筛选内容,这个大家都懂,sheet1被重命名过的就更改下语句内sheet1。该语句用在后面筛选。

  OleDbDataAdapter 用于和上述linq语句检索字符串。

  OleDbConnection 定义个与数据源的连接。

  (3)获取cell数据

 try
            {
                conn = new OleDbConnection(connStr);
                conn.Open();

                 da = new OleDbDataAdapter(sql_F, connStr);

                    DataTable dsItem = new DataTable();
                    da.Fill(dsItem);
                    foreach (DataRow item in dsItem.Rows) {
                      string row1=  item[0].ToString();
                      string row2 = item[1].ToString();
                      string row3 = item[2].ToString();
                      string row4 = item[3].ToString();
                        MessageBox.Show(row1 + " " + row2 + " " + row3 + " " + row4);
                    }
            }
            catch (Exception ex)
            {

            }

  conn为数据源实例化。

  da为查询得出的数据。

  将da的内容放到一个新的dataTable中,然后读取该dataTable的每一行(Row)或列(column)等。

 

  (4)释放

 finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                    da.Dispose();
                    conn.Dispose();
                }
            }

  该文档被打开后,记得释放和关闭,否则会一直在内存里。

 

三.实例代码


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Silverlight中C#写动画设置发布时间:2022-07-13
下一篇:
C#基础回顾(一)—C#访问修饰符发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap