OleDB&混合Excel数据类型:缺失数据我有一个Excel工作表,我想把它读入DataTable-除了Excel工作表中的一个特定列外,一切都很好。列“productid”是类似于##########和n#########.我试着让OleDB自动处理所有事情。通过将其读入DataSet/DataTable,但是“Productid”中的任何值都类似n######都丢失了,被忽略了,并留下了空白。我尝试手动创建DataTable,方法是使用Dataareader循环遍历每一行,但结果完全相同。下面是代码:// add the column names manually to the datatable as column_1, column_2, ...for (colnum = 0; colnum < num_columns; colnum ++){
ds.Tables["products"].Columns.Add("column_" +colnum , System.Type.GetType("System.String")); }while(myDataReader.Read()){
// loop through each excel row adding a new respective datarow to my datatable
DataRow a_row = ds.Tables["products"].NewRow();
for (col = 0; col < num_columns; col ++){
try { a_row[col] = rdr.GetString(col); }
catch { a_row[col] = rdr.GetValue(col).ToString(); }
}
ds.Tables["products"].Rows.Add(a_row);}我不明白为什么它不让我读像n######..我该怎么做?
3 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
方法1
打开Excel电子表格,手动将列格式设置为所需的格式。在这种情况下,“文本”。
方法2
有一个 “hack”,包括将“imex=1”附加到连接字符串中。 就像这样: Provider=Microsoft.Jet.OLEDB.4.0;数据源=myfile.xls;ExtendedProperties=Excel8.0;IMEX=1 这将尝试根据在注册表中设置Excel格式的方式来处理混合Excel格式。这可以由您在本地设置,但是对于服务器来说,这可能不是一个选项。
添加回答
举报
0/150
提交
取消