vb.net 将Excel 2007表导入datatable时,为什么只能导入255列数据
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickLabel1.Text = ""
Button1.Enabled = False
Dim excelpath As String
Dim CD1 As New System.Windows.Forms.OpenFileDialog()
CD1.Title = "选择Excel文件"
CD1.Filter = "(Excel)*.xlsx|*.xlsx|(Excel)*.xls|*.xls"
Dim r As DialogResult = CD1.ShowDialog() '''用户选项的返回结果
'CD1.ShowDialog(Me)
excelpath = CD1.FileName
'''''下面这个搜索引擎只适用于Excel 2003及以下的版本
'Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & excelpath & ";Extended Properties='Excel 8.0;HDR=no'"
''''''07 Excel 还是发现只能导入255列
Dim strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & excelpath & ";Extended Properties='Excel 8.0;HDR=yes'" '''这个适用于2007,改成12.0 xml效果是一样的
Dim myda1 As OleDbDataAdapter
Dim MyConnection As OleDbConnection
Dim myds1 As DataSet
MyConnection = New OleDbConnection(strConn)
myda1 = New OleDbDataAdapter("select * from [sheet1$]", MyConnection)
myds1 = New DataSet()
'If CD1.ShowDialog() = System.Windows.Forms.DialogResult.Cancel Then ''''这样做有一点小bug
If r = System.Windows.Forms.DialogResult.Cancel Then
MsgBox("您选择了取消!")
Exit Sub
Else
myda1.Fill(myds1, "[sheet1$]")
MyConnection.Close()
DataGridView1.DataSource = myds1.Tables(0) '''''''这里datagridview1只显示255列数据
End If --------------------编程问答-------------------- bug,这是microsoft bug,避开它,没办法,我也碰到过 --------------------编程问答-------------------- 因为Excel最多只能有255列。。 --------------------编程问答-------------------- excel能容纳的最大行数和列数分别是:
行数:65536
列数:255
人家就是软件就是这么做的,没有办法! --------------------编程问答-------------------- 03 版本的好像 就这么多列。2010版本的,就多很多咯。 --------------------编程问答-------------------- Excel 2003最大行数是65536 列数是256 不错,可是我用的是Excel 2007
Excel 2007最大列数可以有65536 行数最大大概有100多万吧,我觉得是搜索Excel 2007数据引擎的原因
("select * from [sheet1$]", MyConnection),楼上的说避开,请教下如何避开,谢谢,datatable最大列数可以超过255列,所以也不是.net datatable和dataset的原因,知道的处理方法的说下,谢谢
--------------------编程问答--------------------
你的那个是新建Excel2007产生的文件,而不是用Excel2007打开的Excel2003的文件???? --------------------编程问答-------------------- 是的,我是新建的Excel 2007 里面的数据列数有300多列,结果发现datagridview只能显示到255列,监视datatable表的列数,也是显示255,不是用2007打开03的Excel --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 没有人回答吗???没有哪位大侠有解决办法? --------------------编程问答-------------------- 使用新的OFFICE组件,导入*.xlsx文件
补充:.NET技术 , VB.NET