从Excel、CSV文件获取数据
#region 从Excel获取数据
/// <summary>
/// 从Excel获取数据
/// </summary>
/// <param name="Path">文件路径(完整路径)</param>
/// <returns></returns>
public static DataSet ReadExcelToDS(string Path)
{
DataSet ds = new DataSet();
OleDbConnection conn = null;
OleDbDataAdapter da = null;
try
{
//string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";//此连接只能操作Excel2007之前(.xls)文件
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Path + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; //此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
//备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数据,"HDR=No;"正好与前面的相反。
// "IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。
conn = new OleDbConnection(strConn);
conn.Open();
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
if (schemaTable != null)
{
string sheetName = schemaTable.Rows[]["table_name"].ToString().Trim();
if (sheetName != null && sheetName.Length > )
{
string strExcel = "select * from [" + sheetName + "]";
da = new OleDbDataAdapter(strExcel, conn);
da.Fill(ds);
}
}
}
catch (Exception e)
{
throw e;
}
finally
{
if (conn != null) conn.Close();
if (da != null) da.Dispose();
}
return ds;
}
#endregion
#region 从CSV文件获取数据
/// <summary>
/// 从CSV文件获取数据
/// </summary>
/// <param name="Path">文件路径(完整路径)</param>
/// <returns></returns>
public static DataSet GetDataSetFromCSV(string Path)
{
string filePath = System.IO.Path.GetDirectoryName(Path);
string fileName = System.IO.Path.GetFileName(Path);
string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filePath + ";Extensions=asc,csv,tab,txt;";
DataSet ds = new DataSet();
OdbcConnection Conn = new OdbcConnection(strConn);
OdbcDataAdapter da = null;
try
{
Conn.Open();
DataTable schemaTable = Conn.GetSchema("Tables", null);
if (schemaTable != null)
{
for (int i = ; i < schemaTable.Rows.Count; i++)
{
string sheetName = schemaTable.Rows[i]["table_name"].ToString().Trim();
if (fileName == sheetName)
{
string strSql = "select * from " + sheetName;
da = new OdbcDataAdapter(strSql, Conn);
da.Fill(ds);
break;
}
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
Conn.Close();
if (da != null) da.Dispose();
}
return ds;
}
#endregion
从Excel、CSV文件获取数据的更多相关文章
- C++ 把数组数据存入 CSV 文件,以及读取 CSV 文件的数据
1. CSV-百度百科 2. 代码 #pragma once //Microsoft Visual Studio 2015 Enterprise #include<iostream> #i ...
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 ...
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...
- Python使用Flask框架,结合Highchart处理csv数据(引申-从文件获取数据--从数据库获取数据)
参考链接:https://www.highcharts.com.cn/docs/process-text-data-file 1.javascript代码 var options = { chart: ...
- java 关于xlsx(xls) 和 csv 文件的数据解析
1.适用于xlsx 和 xls <!--xlsx和xls文件pom依赖--> <dependency> <groupId>org.apache.poi</g ...
- 用CSV文件读写数据的两种方式(转)
导读:有时候我们需要对收集的数据做统计,并在页面提供显示以及下载.除了对传统的excel存取之外,对CSV文件的存取也很重要.本文列出了这两种操作的详细代码. 代码: <?php $file = ...
- mysql 导入 csv文件中数据,只能导入第一行
用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行.但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打开 ...
- TensorFlow从0到1之TensorFlow csv文件读取数据(14)
大多数人了解 Pandas 及其在处理大数据文件方面的实用性.TensorFlow 提供了读取这种文件的方法. 前面章节中,介绍了如何在 TensorFlow 中读取文件,本节将重点介绍如何从 CSV ...
随机推荐
- shiro 角色与权限的解读
1.为什么 shiro 有了<角色>后,还要设置<角色权限>呢?(问题) 思考:设置好角色了,那么就代表什么操作都可以执行了吗? 理解:如果上边回答是的话,那么只是<角色 ...
- git忽略规则.gitignore未生效解决办法
创建git本地的仓库常用命令:git init #初始化--------生成.git文件 配置本地用户名跟邮箱(这样就知道是谁提交的东西)git config --global user.name [ ...
- 用热情点燃软件工程II
这个作业的要求来自于:https://www.cnblogs.com/greyzeng/p/9581624.html 阅读完文章(热情.能力.选择)深有感触.文章链接为:http://coolshel ...
- Lua 求当前月份的最大天数
[1]实现代码 -- 第一种方式:简写 , day = })) print('The first way result : dayAmount = ' .. dayAmount) -- 第二种方式:分 ...
- 爬虫----selenium模块
一.介绍 selenium最初是一个测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳 ...
- Html br 标签
Html br 标签 <html> <body> <!-- br标签:跳到下一行--> <p>内<br />容</p> 注:br ...
- python学习笔记:*args和**kwargs使用原理?
一.*args和**kwargs原理 先看个例子: def test(*args,**kwargs): print("args =",args) print("kwarg ...
- 2018年12月25日 圣诞节快乐 生成器plus
import time#导入时间模块 time.sleep(5)#输入间隔时间5秒 def p_bz():#使用函数 生产包子 for i in range(100): yield "包子% ...
- nginx访问不到
nginx访问不到 今天,一朋友的一台linux服务器上部署了nginx,但是外部(公网)就是不能访问,于是协助其排查.整体思路如下: 1.确认nginx配置是否ok. 2.确认网络是否可达. 3.是 ...
- win7 64位下redis的安装
1.下载Redis安装包. 下载地址 https://github.com/MSOpenTech/redis,找到Release,点击前往下载页面,点击Redis-x64-3.2.100.msi下载. ...