C#如何使用 OleDbConnection 连接读取Excel?(代码实例)


本文摘自PHP中文网,作者青灯夜游,侵删。

本篇文章给大家带来的内容是C#如何使用 OleDbConnection 连接读取Excel?(代码实例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

/// <summary>

        /// 读取Excel中数据

        /// </summary>

        /// <param name="strExcelPath"></param>

        /// <param name="tableName"></param>

        /// <returns></returns>

        public static DataTable GetExcelTableByOleDB(string strExcelPath, string tableName)

        {

            try

            {

                DataTable dtExcel = new DataTable();

                //数据表

                DataSet ds = new DataSet();

                //获取文件扩展名

                string strExtension = System.IO.Path.GetExtension(strExcelPath);

                string strFileName = System.IO.Path.GetFileName(strExcelPath);

                //Excel的连接

                OleDbConnection objConn = null;

                switch (strExtension)

                {

                    case ".xls":

                        objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 8.0;HDR=yes;IMEX=1;\"");

                        break;

                    case ".xlsx":

                        objConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelPath + ";" + "Extended Properties=\"Excel 12.0;HDR=yes;IMEX=1;\"");//此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)  备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数,"HDR=No;"正好与前面的相反。"IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。

                        break;

                    default:

                        objConn = null;

                        break;

                }

                if (objConn == null)

                {

                    return null;

                }

                objConn.Open();

                //获取Excel中所有Sheet表的信息

                //System.Data.DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

                //获取Excel的第一个Sheet表名

                // string tableName1 = schemaTable.Rows[0][2].ToString().Trim();

                string strSql = "select * from [" + tableName + "$]";

                //获取Excel指定Sheet表中的信息

                OleDbCommand objCmd = new OleDbCommand(strSql, objConn);

                OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);

                myData.Fill(ds, tableName);//填充数据

                objConn.Close();

                //dtExcel即为excel文件中指定表中存储的信息

                dtExcel = ds.Tables[tableName];

                return dtExcel;

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace);

                return null;

            }

        }

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问C#视频教程!

以上就是C#如何使用 OleDbConnection 连接读取Excel?(代码实例)的详细内容!

相关阅读 >>

什么是C#中的多态性?

关于C#代码convert.tochar(null);出现异常的详解(图)

C# 读取u盘序列号进行验证的示例代码

详解C#winform循环播放多个视频的代码示例

手把手教你C#中指针的使用方法

简单介绍C#中list<t>对象的深度拷贝问题

详细介绍winformC#获得mac地址,ip地址,子网掩码,默认网关的代码实例(图)

C#如何实现两个richtextbox控件滚动条同步滚动的简单方法

C#中guid生成格式的四种方法的示例代码分享

C#实现带百分比的进度条功能的示例代码分享

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...