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]

  • 相关阅读:
    PostMessage
    __stdcall
    C++中L和_T()之区别
    号外:百度开源了它的人工智能技术
    最棒的Unity Github 项目收集(2016)
    OpenGL学习笔记——求值器和NURBS
    unity3d四元数和旋转矩阵
    C# System.Timers.Time
    进程地址空间分布
    子进程与父进程
  • 原文地址:https://www.cnblogs.com/jiao732/p/3220649.html
Copyright © 2011-2022 走看看