此主题相关图片如下:22222.jpg
有什么好的解决办法吗?
我测试的导入数据大概20万条。
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim mg As New Merger
mg.SourcePath = dlg.FileName
mg.Format = "Excel2007" '指定格式
Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For n As Integer = 0 To Sheet.Cols.Count -1
Names.add(Sheet(0,n).text)
Next
For Each r As String In v1
If Names.Contains(r)= False ' next 下面的代码也不执行
messagebox.show("excel表中不存在列名为【" & r & "】的列!")
'Return "excel表中不存在列名为【" & r & "】的列!" '命令窗口测试需要返回值,窗口事件中将不会弹出返回值.
Return
End If
Next
mg.SourceTableName =Book.Sheets(0).name & "$"
mg.DataTableName = "更新短租实收开piao"
mg.Merge()
End If
数据太多了,换种方式,比如:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=100317&replyID=&skin=1
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
下边绿色的两行怎么改啊,获取excel的第一个sheet的名字 啊?
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim mg As New Merger
mg.SourcePath = dlg.FileName
mg.Format = "Excel2007" '指定格式
'Dim Book As New XLS.Book(dlg.FileName)
Dim _execl As New ExOpenXml.ExOXExecl()
_execl.Open(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
mg.SourceTableName =Book.Sheets(0).name & "$"
ReadToDataTable(DataTable,SheetName, Columns, StartIndex, Length)
mg.DataTableName = "更新短租实收开piao"
mg.Merge()
_execl.Dispose()
End If
[此贴子已经被作者于2023/12/20 10:24:02编辑过]
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim _execl As New ExOpenXml.ExOXExecl()
_execl.Open(dlg.FileName)
_execl.ReadToDataTable("更新短租实收开piao")
_execl.Dispose()
End If
把excel第一个sheet的数据追加到内部表 “更新短租实收开piao”中,没报错,但是也没追加成功。怎么回事啊?
datatables("更新短租实收开piao").basdetable
将basdetable 改成 basedatatable也不行,说datatables没有这个方法啊
1 如何用_execl 获取第一个sheet的名字啊? 用Dim Book As New XLS.Book(dlg.FileName)获取第一个sheet名字又显示内存过大。
2 用_execl 获取第一个sheet的所有列名啊?
1、_execl没有提供获取 sheet名称的功能。如果是默认导入第一个sheet,可以不用填写
2、_execl也没有提供获取 sheet所有列名功能。如果是追加,请根据Foxtable表格已有的表列导入。如果是新导入,只能导入后获取