2009-12-11 90 views
1

我使用oledb从excel文件读取数据并将其存储在数据集中。 我的excel文件的内容就像如下:使用oledb从Excel读取整数

0 0 somestring somestring 
500 200 somestring somestring 

当我检查了我的数据集的内容,列1 & 2的值不被存储为整数而是DateTime值。

我该如何将它存储为整数值而不是DateTime?

+0

UPDATE:我搜索网,发现这一点:http://www.dotnet247.com/247reference/msgs/37/187667.aspx。显然,设置IMEX = 1只会确保应用注册表设置。我更改了以下注册表项,现在它可以工作: Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows = 0 – KeithDB 2009-12-14 01:32:40

回答

3

您是否尝试将IMEX = 1添加到您的OLEDB连接字符串?

+0

根据您的答案找到解决方案(请参阅上面的更新)。 TNX。 – KeithDB 2009-12-14 01:34:09

0

你确定它的号码?以下可能有几个选项:

  1. 右键单击excel中的列并将格式更改为文本/自定义。
  2. 查看NamedRange.FormatConditions属性;更改格式,当您从Excel中读取其中的数据,请参见MSDN
  3. 或者试用的范围删除现有格式:

就是

Excel.Worksheet sheet = this.Application.ActiveSheet as Excel.Worksheet; 
Excel.Range range = sheet.get_Range("A1", "A5") as Excel.Range; 

//delete previous validation rules 
range.Validation.Delete(); 
0

你可以使用一个第三方组件像,它可以让你获得单元格的底层值(与IWorkbook.Worksheets [“MySheet”] .Cells [rowIndex,colIndex] .Value)无关,或者你可以用IRange.Text获得格式化结果。

您可以看到实时ASP.NET样本here并下载免费试用here

声明:我赢了的SpreadsheetGear LLC