我需要一个Excel猜测数据类型问题的解决方案修复了excel文件模板,现在当我尝试通过Jet提供程序和ADO.Net-Ole连接工具导入数据时,我发现以下问题:由于列[字符串和数字]中的混合数据类型,某些列未被导入,在网上搜索了一下这个问题,发现原因是从Excel中猜测数据类型加载代码:connection=newOleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};Extended属性=Excel8.0;");stringcolumns="P_ID,FULL_NAME_AR,job_no,GENDER,BIRTH_DATE,RELIGION,MARITAL_STATUS,NAT_ID,JOB_Name,FIRST_HIRE_DATE,HIRE_DATE,CONTRACT_TYPE,GRADE_CODE,QUALIFICATION";string[Emman$ps]bName="Command$ps]=newOleDbCommand(string.Format("select{0}from{1}wherep_idisnotnull",columns,sheetName),connection);connection.Open();dr=command.ExecuteReader();DataTabletable=newDataTable();table.Load(dr);我如何告诉Excel停止猜测并将数据作为文本提供给我?如果没有,你能帮我吗?谢谢事先我找到了一个解决方案,通过将IMEX=1添加到连接字符串,但使用特殊格式,在以下链接中进行了描述。IMEX参数适用于使用混合数字和字母值的列。Excel驱动程序通常扫描前几行以确定用于每一列的数据类型。如果该列是基于对先前行的扫描的数字,则该列中包含字母字符的任何行都将返回Null。IMEX参数(1是输入模式)强制列的数据类型为文本,以便正确处理字母数字值。问候你可以从excel方面工作吗?这个在Excel中运行的示例将混合数据类型放入SQLServer表中:DimcnAsNewADODB.Connectionscn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="_&sFullName_&";ExtendedProperties="“Excel8.0;HDR=是;IMEX=1”“;”cn.Openscns="SELECTCol1,Col2,Col3INTO[ODBC;Description=TEST;DRIVER=SQLServer;"_&"SERVER=SomeInstance;Trusted_Connection=Yes;"_&"DATABASE=test].TableZFROM[Sheet1$]"cn.Executes这个不太对啊!显然,如果前8行为空,无论IMEX=1,Jet/ACE始终假定为字符串类型,如果前8行为数字,则始终使用数字类型(同样,无论IMEX=1)。即使我在注册表中将该行读取为0,我仍然遇到同样的问题。这是唯一可靠的方法:以上是C#学习教程:我需要一个Excel猜测数据类型问题的解决方案分享的全部内容,如果对大家有用还需要详细了解一下C#学习教程,希望大家关注——试试{Console.Write(wsReader.GetDouble(j).ToString());}catch//Lame无法修复的bug{Console.Write(wsReader.GetString(j));}本文收集自网络,不代表任何内容,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
