在数据处理的时候,我们会Excel(包含2003、2007、2010等)转换成DataTable,以便进一步操作

1、怎么访问Excel文件呢?我们可以通过OLEDB接口访问,如下:

        private string GetConStr(string ExcelPath)
{
string path = ExcelPath;
if (!File.Exists(path))
return null;
string str2 = Path.GetExtension(path).ToLower();
if ((str2 != ".xls") && (str2 != ".xlsx"))
return null;
string str3 = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + path + "; Extended Properties=Excel 8.0";
if (str2 == ".xlsx")
str3 = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source=" + path + "; Extended Properties=Excel 12.0";
return str3;
}

2、读取Excel的数据到DataTable

        public DataTable ExcelToDataTable(string ExcelPath)
{
return ExcelToDataTable(ExcelPath, null);
} public DataTable ExcelToDataTable(string ExcelPath, string SheetName)
{
string conStr = GetConStr(ExcelPath);
if (string.IsNullOrEmpty(conStr))
return null;
OleDbConnection connection = new OleDbConnection(conStr);
connection.Open();
if (string.IsNullOrEmpty(SheetName))
SheetName = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[]["TABLE_NAME"].ToString();
else if (!SheetName.Contains("$"))
SheetName = SheetName + "$";
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + SheetName + "]", conStr);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "[" + SheetName + "$]");
connection.Close();
return dataSet.Tables[];
}

把Excel转换成DataTable,Excel2003+的更多相关文章

  1. 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel

    步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...

  2. C#_List转换成DataTable

    /// <summary> /// 讲list集合转换成datatable /// </summary> /// <param name="list" ...

  3. 将List转换成DataTable

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  4. list转换成DataTable

    list转换成DataTable类如下: public static DataTable ToDataTable<T>(this IList<T> datas) { DataT ...

  5. 将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据

    领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其 ...

  6. C# DataTable转换成实体列表 与 实体列表转换成DataTable

    /// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...

  7. 获取报告 Stream转string,利用字符串分割转换成DataTable

    protected void Button1_Click(object sender, EventArgs e) { MemoryStream stream = new MemoryStream(); ...

  8. C#:CsvReader读取.CSV文件并转换成DataTable

    原文引用:https://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader using LumenWorks.Framework.IO.Csv; ...

  9. 将泛类型集合List类转换成DataTable

    /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...

随机推荐

  1. python生成语谱图

    语音的时域分析和频域分析是语音分析的两种重要方法,但是都存在着局限性.时域分析对语音信号的频率特性没有直观的了解,频域特性中又没有语音信号随时间的变化关系.而语谱图综合了时域和频域的优点,明显的显示出 ...

  2. JAVA框架 json数据交互

    一.导入依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId& ...

  3. 20155311《网络对抗》MSF基础应用

    20155311<网络对抗>MSF基础应用 实验过程 实验系统 靶机1:Windows XP Professional SP2 ,IP地址:192.168.136.129 靶机2:Wind ...

  4. 20155336虎光元 Exp1PC平台逆向破解及Bof基础实践

    20155336Exp1 PC平台逆向破解(5)M 实践目标: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入 ...

  5. Remote 桌面的win2003 servre端设定

    Microsoft Windows [版本 5.2.3790](C) 版权所有 1985-2003 Microsoft Corp. C:\Documents and Settings\Administ ...

  6. 查看Oracle数据库中的,已经连接好的..当前用户状况

    参考: http://stackoverflow.com/questions/1043096/how-to-list-active-open-connections-in-oracle 以sys身份连 ...

  7. python 回溯法 子集树模板 系列 —— 14、最长公共子序列(LCS)

    问题 输入 第1行:字符串A 第2行:字符串B (A,B的长度 <= 1000) 输出 输出最长的子序列,如果有多个,随意输出1个. 输入示例 belong cnblogs 输出示例 blog ...

  8. C++学习之从C到C++

    头文件的包含 包含头文件可以不加.h结尾,如iostream,一些常用的头文件在引用时可以不加.h后缀,并在开头增加c,如: #include <cstdio> #include < ...

  9. H5——video百花齐放(浏览器自带的播放器)

    前言 手机自带浏览器的H5播放器 真是百花齐放啊(各个手机厂家有各个厂家的控件UI) 需求 手机浏览器木有控件条 自动播放 全屏处理 监控进度条 快进后退 自动播放 自动播放就给跪了 ios 安卓 为 ...

  10. swift学习:第一个swift ui程序

    最近swift有点火,赶紧跟上学习.于是,个人第一个swift程序诞生了... 新建项目