【发布时间】:2014-04-16 04:23:48
【问题描述】:
我正在尝试根据我执行的 Excel 查询从 C# 中的数据集中返回列名列表。我可以这样做(我认为),请参见下面的代码。但是,我的三个列标题是日期,列名显示为 F4、F5、F6。我进一步查看,发现 Type (.getType) 报告 System.Double 但我无法转换它们。
示例文件是:
UID |名字 |姓氏 | 2010 年 7 月 31 日 | 2010 年 8 月 31 日
100 |测试 |测试 | 8.8 | 9.9
200 |测试2 |测试2 | 7.7 | 6.6
我的输出是:
UID
名字
系统字符串
姓
系统字符串
F4
System.Double
F5
System.Double
F6
System.Double
你能解释一下吗?
conn = new OleDbConnection(conStr);
conn.Open();
dbCmd = new OleDbCommand("SELECT * FROM [" + worksheetName + "$]", conn);
dbCmd.CommandType = CommandType.Text;
dbAd = new OleDbDataAdapter(dbCmd);
dbAd.Fill(ds);
foreach (DataTable table in ds.Tables)
{
foreach (DataColumn col in table.Columns)
{
Console.WriteLine(col.ColumnName);
Console.WriteLine(col.ToString());
Console.WriteLine(col.DataType);
//object t = col;
//Double ttd = (Double)t;
//Console.WriteLine(t);
}
}
我搜索了高低,但找不到如何做到这一点。我真的不想读取使用 Excel 对象模型的文件,因为这太慢了。
【问题讨论】: