【发布时间】:2012-11-12 22:38:11
【问题描述】:
我正在开发一个带有 MySQL 数据库的 Web 应用程序 (ASP.NET)。当我尝试通过此应用程序上传 Excel 文件 (.xlsx) 时,我没有任何问题。当文件超过 24904 条记录时,问题就开始了。
此时我收到以下错误:
此表格包含超出此电子表格中定义的单元格范围的单元格。
它会写入前 24904 条记录。
我尝试将负载拆分为多个批次,但没有成功。
有什么想法吗?
Dim connExcel As New System.Data.OleDb.OleDbConnection(conStr)
Dim cmdExcel As New System.Data.OleDb.OleDbCommand()
Dim dt As New DataTable()
Dim dataset As New DataSet
Dim x As Integer = 2
Dim y As Integer = 20001
Dim range As String = "A" + x.ToString + ":" + "I" + y.ToString
cmdExcel.Connection = connExcel
If erro = 0 Then
Try
For i As Integer = 0 To 50
connExcel.Open()
dataset.Reset()
dataset.Clear()
Dim oda As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$" & range.ToString & "]", connExcel)
oda.TableMappings.Add("Table", "ExcelTest")
oda.Fill(dataset)
connExcel.Close()
If dataset.Tables(0).Rows.Count > 0 Then
SendToDB(dataset)
Else
i = 50
End If
x = x + 20000
y = y + 20000
range = "A" + x.ToString + ":" + "I" + y.ToString
Next
Label7.Visible = True
Label7.Text = "The information has been written successfully from 0 to " + y.ToString
Catch ex As Exception
Label9.Visible = True
Label9.Text = "Database Error 2:" + ex.Message
connExcel.Close()
End Try
End If
【问题讨论】:
-
哪一行报错?
-
您是否验证了第 24905 行的数据在定义的标题列之外没有多余的数据?
-
dhirschl - 我检查了这条线,它没有任何奇怪的地方。我删除了它并在下一行遇到了同样的问题
-
Tim Williams - 在记录 24904 之后读取 excel 时出现错误,这似乎是某种限制。
-
提取 24900 条记录后,您的 RAM 是否不足?
标签: asp.net mysql vb.net excel-interop