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

ido*_*hir 3 .net oledb excel

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

问题是我得到了一个单元格的数据而不是它的样式.Excel中的日期值更改为.NET中的日期时间格式,Excel中设置为货币的单元格在.NET中显示为整数.使用OleDB从Excel导出数据时,您不知道单元格是否包含日期,货币等.例如,如果单元格设置为文本并包含从零开始的五位数字,则您将获得四位数字.

我正在寻找一种获取数据的方法,如果您在Excel中查看数据时会出现这种情况.

使用.NET 3.5和Excel 2007.

Chr*_*ian 5

为了找出列的数据类型,您必须使用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
Run Code Online (Sandbox Code Playgroud)