VB.NET-OLEDBEException在插入Excel电子表格时表示电子表格已满

VB.NET-OLEDBEException在插入Excel电子表格时表示电子表格已满,vb.net,visual-studio-2010,excel,oledb,Vb.net,Visual Studio 2010,Excel,Oledb,我有一个VB.Net程序,它读取一个平面文件,然后逐行解析,将数据格式化为excel工作簿中的不同电子表格(每行可以是任意10多种不同的记录类型,因此我解析并放入适当的excel表格) 对于较小大小的平面文件(10mb以下),解析器工作得很好。但是,我正在一个超过120mb(400k+行)的文件上尝试此操作。运行时,我会收到一个OLEDBEException,表示电子表格已满。现在我非常确信Excel可以处理比平面文件大得多的数据集。所以我认为这个例外并没有告诉我真正发生了什么 我打开一个连接,

我有一个VB.Net程序,它读取一个平面文件,然后逐行解析,将数据格式化为excel工作簿中的不同电子表格(每行可以是任意10多种不同的记录类型,因此我解析并放入适当的excel表格)

对于较小大小的平面文件(10mb以下),解析器工作得很好。但是,我正在一个超过120mb(400k+行)的文件上尝试此操作。运行时,我会收到一个OLEDBEException,表示电子表格已满。现在我非常确信Excel可以处理比平面文件大得多的数据集。所以我认为这个例外并没有告诉我真正发生了什么

我打开一个连接,然后解析文件中的每一行,将每一行插入excel文件。我认为打开/关闭每个插件之间的连接会导致性能下降。这可能是问题的根源吗?你知道我需要做什么来处理这么大的文件吗?在某些情况下,平面文件的大小可能超过500mb

要实际插入excel,我只需执行以下操作(我根据分析的行类型和值构造一个sql查询):
Dim conn作为新的OLEDB连接()

conn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;数据源=“+ExportLocation.Text+”\“+importFileName+”-PVF.xls;扩展属性=”“Excel 8.0;HDR=YES”“”

conn.Open()

Dim cmd1作为新的OleDbCommand()

cmd1.Connection=conn


…解析器代码…

cmd1.CommandText=“插入“+rowType+”值(“+currentRowString+”)”


Excel 8.0与Excel 97相同,Excel 97最多允许65536行。您正在超出此限制。

您正在编写哪个版本的Excel?抱歉,我还在添加代码。我从来没有想过,但根据连接字符串,看起来是Excel 8.0?我复制了连接流并对其进行了修改,但我希望它能在最新版本上工作。如果我没弄错的话,8.0是97对吗?哇,你说得对。我想我得把它定在2007年的最低限度。谢谢你!