将excel导入C#datatable

时间:2016-05-26 12:32:03

标签: c# datatable sql-server-2012

我有一个C#脚本,它将一个excel文件读入一个数据表,然后填充一个数据库表,其中包含所有数据类型为varchar的X列数。下图将excel数据源与数据库上的导入版本进行比较。这就是我需要它工作的方式,请注意精确度。

enter image description here

但是,数据源中偶尔会有星号来抑制低数字。这对导入有以下影响。注意Col3中缺乏精确度的变化。

enter image description here

我想这是因为我的脚本在Col3中看到多个数据类型并在填充数据表时将其转换为varchar。目前正在我的连接字符串中使用IMEX=1处理此问题。

我是否有办法操纵我的代码,以便将任何星号转换为易于识别的值,例如-999而不修改excel中的数据源?

这是我的代码

String FilePath = "Code to get file path";
String SheetName = "Code to get sheet name";
String SheetRange = "Code to get sheet range";

SourceConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + FilePath + ";Extended Properties='Excel 8.0;IMEX=1;HDR=NO'";

OleDbConnection SourceConnection = new OleDbConnection(SourceConnectionString);

String strSQL = "SELECT * FROM [" + SheetName + "$" + SheetRange + "]";

OleDbCommand myCommand = new OleDbCommand(strSQL, SourceConnection);

DataTable myDataTable = new DataTable();

OleDbDataAdapter myDataAdaptor = new OleDbDataAdapter(myCommand);

myDataAdaptor.Fill(myDataTable);

0 个答案:

没有答案