zoukankan      html  css  js  c++  java
  • 使用oledb获取Excel文件第一个工作表数据

    使用Microsoft.Jet.OLEDB读取Excel文件时需要在sql中指定表名,形如[Sheet1$],也就是xls文件中的工作表。对于导入Excel文件这类操作,因为用户提供的xls文件中工作簿的名字不一定是默认的“Sheet1”,检测Excel文件的工作表的名称往往需要调用Excel的com对象来获得,比较麻烦。

    另外有个办法可以获得工作表名称,以下是c#代码:

        public static string GetFirstTableName()
            {

            DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            string tableName = dt.Rows[0][2].ToString().Trim();
            return tableName;
            }

         但是上面的方法获取的表名,其实是经过排序的,不一定就是位置在第一个的工作表的名称,所以并不一定适用。

    其实可以用下面的办法绕过这个必须显式指定工作表的问题,在OleDb调用的获取数据的SQL这样指定表名:

        SELECT * FROM [$A1:R65536]

        此处[$A1:R65536] 替换通常的[Sheet1$],其含义就是获取xls文件中在第一个位置的工作表中A列到R列的1-65536行这块数据。这样就可以避免获取第一个工作表的问题,根据要导入的xls文件内容可以修改 开始列字母1:结束列字母65536 中的字母为实际需要的值。

    [转:http://blog.csdn.net/sunyou/article/details/6888148]

  • 相关阅读:
    js截取字符串区分汉字字母代码
    List 去处自定义重复对象方法
    63. Unique Paths II
    62. Unique Paths
    388. Longest Absolute File Path
    41. First Missing Positive
    140. Word Break II
    139. Word Break
    239. Sliding Window Maximum
    5. Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/jiao732/p/3220649.html
Copyright © 2011-2022 走看看