C# Excel超过255列如何读取
答案:2 悬赏:20 手机版
解决时间 2021-01-25 08:54
- 提问者网友:欲望失宠
- 2021-01-24 13:38
C# Excel超过255列如何读取
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-01-24 14:50
原因分析:
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
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
全部回答
- 1楼网友:想偏头吻你
- 2021-01-24 16:24
显示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();
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯