【发布时间】:2015-07-16 08:42:52
【问题描述】:
我正在使用 C# 中的 ADO DB 读取 excel 表,但我面临的问题是它无法复制其格式的单元格数据。例如
我的一个单元格是货币格式 ($2,123.45),所以当我得到结果集时,我得到的单元格值为 (2123.45)。
有什么方法可以让我获得与 Excel 表中显示的完全相同的单元格数据。下面是我从 excel 中获取结果集的代码
string sQuery = "Select * From [" + sSheet + "$]";
if (dtType == DataLayer.TestData)
sWorkbook = Path.GetDirectoryName(ConfigurationManager.AppSettings["resourcesFolder"]) + @"\Data\Test Data\" + sWorkbook;
if (dtType == DataLayer.ExpectedData)
sWorkbook = Path.GetDirectoryName(ConfigurationManager.AppSettings["resourcesFolder"]) + @"\Data\Expected Data\" + sWorkbook;
string cnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sWorkbook + "; Extended Properties= 'Excel 8.0; HDR=Yes; IMEX=1'";
oConn.Open(cnStr, null, null, 0);
oRS.Open(sQuery, cnStr, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic, -1);
oConn.Close();
请提供一些解决方案。
注意:在最坏的情况下,如果我的表现不受影响,我可以选择其他选项来阅读 Excel。
【问题讨论】: