首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Excel中读取超过255个字符的数据行

如何从Excel中读取超过255个字符的数据行
EN

Stack Overflow用户
提问于 2011-05-12 22:51:10
回答 6查看 10.8K关注 0票数 2

问题是,当我按如下所示设置DataSet时,默认设置仅从电子表格单元格中读取255个字符,并将它们放入表中。

代码语言:javascript
复制
DataSet exData = new DataSet();
string connectionString = String.Format(ConnectionString, path);
OleDbDataAdapter ex = new OleDbDataAdapter(ExcelQuery, connectionString);
ex.Fill(exData);

我使用的是Extended Properties=Excel 8.0和Microsoft.Jet.OLEDB.4.0,连接到excel工作表没有问题。

根据我的阅读,这是由于Jet.OLEDB提供商,我应该使用什么?

我可能无法更新到新的Jet提供商,有什么解决办法吗?对于超过255个字符的数据,任何解决方法都将受到限制,即不能直接将Excel文档修改为包含两个或更多单元格。

谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-12 23:11:33

jet中文本列的标准最大长度为255个字符。我还没有尝试过这样做,但是如果您创建了一个schema.ini文件,并告诉它您的列是一个备注类型,那么您也许能够放入更多的数据。

票数 1
EN

Stack Overflow用户

发布于 2015-06-12 13:38:38

使用ExcelDataReader并在项目中添加引用。并使用以下代码读取超过255列的Excel ...

代码语言:javascript
复制
FileStream stream = File.Open(strFileName, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
return result.Tables[0];
票数 4
EN

Stack Overflow用户

发布于 2014-10-02 00:02:58

我在这里遇到了同样的问题,我发现,默认情况下,只有前8行用于设置列的类型。如果在第8行下面的任何其他行上有一个更大的字符串,它将被截断。

您只需运行Regedit并转到:

32位版本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

64位版本:

HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\microsoft\jet\4.0\Engines\Excel

在这里,将TypeGuessRows更改为,这样Jet引擎将使用所有行来设置数据类型。

来源:Why SSIS always gets Excel data types wrong, and how to fix it!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5979892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档