读取Excel中数据
#region 读取导入Excel数据
/// <summary>
///
/// </summary>
/// <param name="filename"></param>
/// <param name="fields"></param>
/// <returns></returns>
public DataSet ReadDataFromExcel(string filename, string fields)
{
DataSet ds = new DataSet();
try
{
string cnn = string.Empty;
string ext = Path.GetExtension(filename).ToLower();
if (ext == ".xls")
{
cnn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + filename + ";Extended Properties=" + (char) + "Excel 8.0;HDR=Yes;IMEX=1;" + (char);
}
else if (ext == ".xlsx")
{
cnn = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + filename + ";Extended Properties=" + (char) + "Excel 12.0;HDR=Yes;IMEX=1;" + (char);
}
else
{
throw new Exception("读取失败,非excel文件格式。");
}
using (OleDbConnection connection = new OleDbConnection(cnn))
{
connection.Open();
DataTable tables = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow row in tables.Rows)
{
string table = row["TABLE_NAME"].ToString();
DataTable dt = ReadEachExcelSheetData(connection, table, fields);
if (dt != null)
{
ds.Tables.Add(dt.Copy());
}
}
}
return ds;
}
catch (Exception ex)
{
throw new Exception("数据文件或者内容格式有严重错误(" + ex.Message + "),请检查!");
}
}
public DataTable ReadEachExcelSheetData(OleDbConnection connection, string table, string fields)
{
try
{
string sql = string.Empty;
string query = string.Empty;
if (fields.IndexOf(',') > )
{
foreach (string column in fields.Split(','))
{
query += "[" + column + "],";
}
query = query.Trim(',');
}
else
{
query = fields;
}
sql = @"
SELECT
{0}
FROM
[{1}]
";
sql = string.Format(sql, query, table);
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, connection);
adapter.Fill(ds, table);
if (ds != null && ds.Tables.Count > && ds.Tables[].Rows.Count > )
{
return ds.Tables[];
}
}
catch (Exception ex)
{
throw ex;
}
return null;
}
private DataSet GetDataFromExcel(string filename,string fields)
{
DataSet ds = new DataSet();
string cnn = string.Empty;
string ext = Path.GetExtension(filename).ToLower();
if (ext == ".xls")
{
cnn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + filename + ";Extended Properties=" + (char) + "Excel 8.0;HDR=Yes;IMEX=1;" + (char);
}
else if (ext == ".xlsx")
{
cnn = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + filename + ";Extended Properties=" + (char) + "Excel 12.0;HDR=Yes;IMEX=1;" + (char);
}
else
{
throw new Exception("读取失败,非excel文件格式。");
}
using (OleDbConnection connection = new OleDbConnection(cnn))
{
connection.Open();
DataTable tables = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string tableName = tables.Rows[]["TABLE_NAME"].ToString();
string sql = "select * from [{0}]";
sql = string.Format(sql, tableName);
OleDbCommand command = connection.CreateCommand();
command.CommandText = sql;
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
adapter.Fill(ds);
return ds;
}
}
#endregion
读取Excel中数据的更多相关文章
- vue中读取excel中数据
安装xlsx npm install xlsx --save-dev 安装好后在需要的页面 引入插件 import xlsx from 'xlsx' 调用 $('#uploadFile').chang ...
- java中使用jxl读取excel中的数据
package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impo ...
- sql 读取excel中的数据
select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...
- SpringBoot(十三)_springboot上传Excel并读取excel中的数据
今天工作中,发现同事在整理数据,通过excel上传到数据库.所以现在写了篇利用springboot读取excel中的数据的demo.至于数据的进一步处理,大家肯定有不同的应用场景,自行修改 pom文件 ...
- 无法读取Excel中的数据单元格。有数据,但是读出来全是空值
C#读取Excel,取值为空的解决办法! C#读取Excel遇到无法读取的解决方法是什么呢?这样在C#读取Excel的过程中有很多问题,那么本文就向你介绍如何解决C#读取Excel遇到无法读取的解决方 ...
- 读取Excel中的数据到DataSet
读取Excel中的数据到DataSet 1.引用命名空间 using System.Data.OleDb; 2.输入Excel文件,输出DataSet public DataSet ExecleDs( ...
- C# 读取Excel中的数据
#region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name=&quo ...
- asp.net读取Excel中的数据问题
1.Microsoft.ACE.OLEDB.12.0 与Microsoft.Jet.OLEDB.4.0 在通过ADO对Excel对象进行连接时(此时Excel则认为是一个数据源),需要配置对Exc ...
- 上传读取Excel文件数据
/// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...
随机推荐
- python学习笔记八——字典的方法
4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...
- html 统一资源定位器(url)和url编码
url,即统一资源定位器,也叫网址. 点击<a>标签就会连接到url指定的服务器web资源,文档或者其它数据: url的命名规则:url可是域名或者IP地址 url="shcem ...
- Python中正则表达式的巧妙使用
字符串的匹配查询 re模块中的findall函数可以对指定的字符串进行遍历匹配,获取字符串中所有匹配的子串,并返回一个列表结果.该函数的参数含义如下: findall(pattern, string, ...
- mysql 性能指标
qps 每秒处理的查询数tps 每秒处理的事务数IOPS 每秒磁盘进行的I/O操作次数 一.TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数. ...
- window.onload和document.ready
浏览器解析大致有以下几个步骤: (1) 解析HTML结构 (2) 加载外部脚本和样式 (3) 解析并执行脚本代码 (4) 构造HTML DOM 模型 (5) ...
- 矩阵游戏 HYSBZ - 1059(最大流)
1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 6266 Solved: 3065[Submit][Stat ...
- java将一个javabean转化为另一个javabean
公司的项目是用webservice来进行前后台对接,启动后台后需要刷服务才能在前台生成对应的代码,但是有一个很恶心的地方,它给每个service都生成了一个model,于是出现后台只有一个javabe ...
- [luogu4568][bzoj2763][JLOI2011]飞行路线
题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为00到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定 ...
- sharepoint my site setting
参考这个guide : http://technet.microsoft.com/en-us/library/ee624362.aspx User profile service 不能打开, 原因是s ...
- JNative 传递参数bug
下载JNative网址:http://sourceforge.net/projects/jnative/files/jnative/ 下载JNative版本:JNative_1.4RC3_bin.zi ...