读取Excel 2007的xlsx文件和读取老的.xls文件是一样的,都是用Oledb读取,仅仅连接字符串不同而已。

具体代码实例:

public static DataTable GetExcelToDataTableBySheet(string FileFullPath,string SheetName)

{

 //此连接只能操作Excel2007之前(.xls)文件

  string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + FileFullPath + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; 

  //此连接可以操作.xls与.xlsx文件

   string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" +"data source=" + FileFullPath + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'";

   OleDbConnection conn = new OleDbConnection(strConn);

   conn.Open();

   DataSet ds = new DataSet();

   OleDbDataAdapter odda = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", SheetName), conn);

  //OleDbDataAdapter odda = new OleDbDataAdapter(string.Format("select * from [Sheet1$]", conn),conn);                                               

   odda.Fill(ds, SheetName);

   conn.Close();

   ]; 

}

读取Excel文件时,可能一个文件中会有多个Sheet,因此获取Sheet的名称是非常有用的。

代码示例如下:

//根据Excel物理路径获取Excel文件中所有表名 

public static String[] GetExcelSheetNames(string excelFile)

{

            OleDbConnection objConn = null;

            System.Data.DataTable dt = null; 

            try

            {

//此连接只能操作Excel2007之前(.xls)文件

                tring strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + excelFile + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; 

 //此连接可以操作.xls与.xlsx文件

                string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" +"data source=" + excelFile + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'";

                objConn = new OleDbConnection(strConn);

                objConn.Open();

                dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                if (dt == null)

                {

                    return null;

                }

                String[] excelSheets = new String[dt.Rows.Count];

                ;

                foreach (DataRow row in dt.Rows)

                {

                    excelSheets[i] = row["TABLE_NAME"].ToString();

                    i++;

                } 

                return excelSheets;

            }

            catch

            {

                return null;

            }

            finally

            {

                if (objConn != null)

                {

                    objConn.Close();

                    objConn.Dispose();

                }

                if (dt != null)

                {

                    dt.Dispose();

                }

            }

}

C#读取xlsx文件Excel2007的更多相关文章

  1. C#基础知识之读取xlsx文件Excel2007

    读取Excel 2007的xlsx文件和读取老的.xls文件是一样的,都是用Oledb读取,仅仅连接字符串不同而已. 具体代码实例: public static DataTable GetExcelT ...

  2. Python读取xlsx文件

    Python读取xlsx文件 脚本如下: from openpyxl import load_workbook workbook = load_workbook(u'/tmp/test.xlsx') ...

  3. 人工智能-机器学习之seaborn(读取xlsx文件,小提琴图)

    我们不止可以读取数据库的内容,还可以读取xlsx文件的内容,这个库有在有些情况还是挺实用的 首先我们想读取这个文件的时候必须得现有个seaborn库 下载命令就是: pip install  seab ...

  4. 读取xlsx文件的内容输入到xls文件中

    package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...

  5. 使用POI读取xlsx文件,包含对excel中自定义时间格式的处理

    package poi; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcepti ...

  6. pandas dataframe 读取 xlsx 文件

    refer to: https://medium.com/@kasiarachuta/reading-and-writingexcel-files-in-python-pandas-8f0da449c ...

  7. java 读取xlsx文件

    public class ReadExcel { public static void main(String[] args) { Workbook wb = null; Sheet sheet = ...

  8. Java关于读取Excel文件~xlsx xls csv txt 格式文件~持续汇总~

    所需的jar百度网盘链接:https://pan.baidu.com/s/146mrCImkZVvi1CJ5KoiEhQ提取码:c329 1 需要导入jar包,缺1不可 dom4j-1.6.1.jar ...

  9. R语言︱文件读入、读出一些方法罗列(批量xlsx文件、数据库、文本txt、文件夹)

    笔者寄语:小规模的读取数据的方法较为简单并且多样,但是,批量读取目前看到有以下几种方法:xlsx包.RODBC包.批量转化成csv后读入. R语言中还有一些其他较为普遍的读入,比如代码包,R文件,工作 ...

随机推荐

  1. QT学习之路---信号槽

    #include<QApplication> #include<QPushButton> int main(int argc,char *argv[]) { QApplicat ...

  2. jquery ui autocomplete combox格式设置

    <style> .custom-combobox {//设置输入框格式 position: relative; display: inline-block; width: 62%; } . ...

  3. 查看maven项目的依赖关系 mvn dependency:tree

    maven-dependency-plugin最大的用途是帮助分析项目依赖,dependency:list能够列出项目最终解析到的依赖列表,dependency:tree能进一步的描绘项目依赖树,de ...

  4. SCI期刊的审稿流程

    审稿中涉及到的人: EIC-Editor in Chief 主编, 此人很重要,有稿件最终决定权. ADM- (可能是) Administrator 应该是协助主编日常工作的. AE-Associat ...

  5. Redis多机功能之Sentinel

    Sentinel的目的:监视主从服务器,并在主服务器下线时自动进行故障转移 启动Sentinel 通过执行Redis安装文件中的redis-sentinel程序,可以启动一个Sentinel实例: r ...

  6. windows 测试数据库的连接状况-udl方法

    udl是windows系统上,用于测试数据库的连接状态的测试软件. 使用方法: 1.建立一个空白文本 2.将文件的后缀名更改为*.udl 即可     文件内容一定为空 3.选择windows的“提供 ...

  7. ofstream的问题

    ofstream在多字节编码的项目中, 写入中文目录写不了, 英文目录可以 换成c库的fopen, fwrite可以

  8. Editplus 注册码

    EditPlus 是一款功能强大的文字处理软件.它可以充分的替换记事本,它也提供网页作家及程序设计师许多强悍的功能.支持 HTML.CSS.PHP.ASP.Perl.C/C++.Java.JavaSc ...

  9. 关于Windows平台下应用程序加载DLL模块的问题.

    本文将讨论以下问题: (1)Windows可执行程序会从哪些目录下加载DLL. (2)如何将可执行使用的DLL放置到统一的目录下,而不是与EXE同一目录. (3)可执行程序加载了不该加载的DLL. ( ...

  10. OpenStack-Mitaka 一键安装测试环境脚本

    说明:这个脚本是采用Bash Shell编写,这个版本还只能作为测试环境搭建使用. 此脚本原形的发起人是网友:WuYuLiang.这里有他的博客链接:   第一版的链接: http://blog.cs ...