永发信息网

C# Excel超过255列如何读取

答案:2  悬赏:20  手机版
解决时间 2021-01-25 08:54
C# Excel超过255列如何读取
最佳答案
原因分析:
   ADO和SSIS的Excel源对数剧列的长度的判定存在问题。
解决方案一:
把EXCEL转换成CSV格式,然后使用平面文件源导入数据库。
需要注意两点:
1、输出列长度需要手动修改。
2、注意不同语言造成的Unicode字符转换问题,必要时先切换系统语言,再作转换。
解决方案二:
将注册表中
Jet引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
如果是:ACE引擎.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel
下的TypeGuessRows 项的值设置为0
Windows server 2003 系统注册表中,JET项位于HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWow64Node\下
原因是驱动默认情况下根据列的前8行数据判定列长度,修改为0后需要检查整列数据来判定列长度,超过255个字符默认为ntext格式,少于255个字符则默认为nvarchar(255)。
添加一个数据流.在数据流里.添加一个OLEDB源.
新建一个excel的oledb源.在这里就不说了.
只需要将Provider设置为Microsoft Ace Oledb.然后选择Excel文件.
然后设置Extended Properties属性为Excel 12.0;HDR=YES
解决方案三:
使用函数将长度超过255个字符的列切割为多个少于255的列,导入数据库后在进行合并。
注意Excel的选择性粘贴功能。
可用函数:Left ,Mid
全部回答
显示excel表格 dataset ds=null; using (sqlconnection cn = new sqlconnection("provider=microsoft.jet.oledb.4.0;data source=" + excel文件名(绝对路径) +";extended properties=excel 9.0;")) //configurationmanager.connectionstrings["db2connectionstring"].connectionstring { cn.open(); cmd=new sqldataadapter(%%1,cn); ds=new dataset(); cmd.fill(ds,%%2); //"作者" mydatagrid.datasource=ds.tables(%%2).defaultview; //"作者" mydatagrid.databind(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
策略交易工具该用哪种的呢?
电脑显示这个是什么意思,网页程序都打不开,
魔耳国际英语(梅峰支路)地址有知道的么?有点
中国邮政储蓄银行(健民大药房)地址有知道的么
家庭健康档案不包括A.家庭基本资料B.家庭问题
为什么就一直出现fastboot按也按不动
工程质量不合格,我举报,公司会害怕不
阅读下列材料,材料一 古典经济学家……认为
义乌有直达贵州凤冈县的汽车客运站吗
月经来了,怎样坐最舒服
用肥皂冼阴部也会舌苏打水冼效里一样吗
梦到死去的父亲,怎么还活着,没有穿衣还是残疾
使命召唤3第三章 尘归尘,土归土怎么过
美育音乐舞蹈国际机构(大洋天地店)地址在什么
小米手机进水自己好了还需要维修吗
推荐资讯
空压机房能放发电机组吗
鹏华饮用水地址好找么,我有些事要过去
工行卡农商行取款手续费
销邦盘点机无声音怎么解决?请教一下科技高手
停车场(体育路)(漕河三路166号附近停车场)地
皮蛋臭了还能吃么
存款准备金率上升,利率会有上升压力,“上升压
主力拉升股票违法的吗?
曾与房屋办房照用教税吗。我爸爸的房屋曾于我
黑夜的尽头究竟是什么呢
伊丽莎洗衣地址在什么地方,想过去办事
女朋友天天爱和男的出去玩怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?