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# 2.0 specification(一)简介

详细介绍C# 利用irawpixels接口遍历栅格数据的代码实例

详细介绍C#中调用formatmessage api

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

解析C#.net 和vb.net的区别

详解C#实现获取汉字十六进制unicode编码字符串的示例代码

C#全应用导图的图文介绍

具体介绍使用C#访问access数据库时,提示找不到可安装的isam(图)

.net中C#集合的交集、并集、差集

C#中抽象类和接口的区别

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




打赏

取消

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

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

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

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

评论

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