.net - 使用.NET从Excel获取数据作为数据库

标签 .net excel oledb

我想使用 .NET 从 Excel 文件获取数据 Excel 文件正在使用中,因此无法打开它。我所做的是使用 OleDB 将其作为数据源连接到。

问题是我获取了单元格的数据,但没有获取其样式。 Excel 中的日期值会更改为 .NET 中的日期时间格式,并且 Excel 中设置为货币的单元格在 .NET 中显示为整数。使用 OleDB 从 Excel 导出数据时,您不知道单元格是否包含日期、货币等。例如,如果单元格设置为文本并包含以零开头的五位数字,则您只会得到四位数字。

我正在寻找一种方法来获取数据,就像您在 Excel 中查看数据时所显示的那样。

使用 .NET 3.5 和 Excel 2007。

最佳答案

为了找出列的数据类型,您必须使用 FillSchema 方法:

OleDbConnection conn = new OleDbConnection(...);
conn.Open();

DataSet dataSet = new DataSet();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT * FROM <table>", conn);
dataAdapter.FillSchema(dataSet, SchemaType.Source);
dataAdapter.Fill(dataSet);

//Now you can access the data type like this
dataSet.Tables[0].Columns[0].DataType

关于.net - 使用.NET从Excel获取数据作为数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1426735/

相关文章:

excel - SSRS 导出到 xlsx 坏了?

.net - 使用 OleDB 从 CSV 导入行/批处理范围

.net - 从某个数据库读取数据时,如何编写 NUNit 测试用例?

c# - 来自 list<object> , ToString() 它们只是当它们是原始类型或重写此方法时

c# - 如何在 .NET 中使用 MasterDevs ChromeDevTools?

c# - Microsoft.Jet.OLEDB.4.0 转换字符

asp.net - 从 Excel 导入数据集时为列值插入 NULL

.net - Html.HiddenFor 有什么作用?

用于替换格式但保留单元格值 : partially solved 的 VBA

excel - OfficeWriter Excel 报告 - bc30277 类型字符 '!' 不匹配