从Excel代码导入数据有什么问题? [英] What is the problem in Importing Data From Excel Code ?
本文介绍了从Excel代码导入数据有什么问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
的返回错误消息:
DataTable已属于此DataSet.
在此行:
''s return error message :
DataTable already belongs to this DataSet.
At this line :
ds.Tables.Add(Tblsheet)
Dim SourceBookPath As String = Nothing
Me.OpenFileDialog1.Filter = "Excel files (*.xls,*.xlsx)|*.xls;*.xlsx"
Me.OpenFileDialog1.ShowDialog()
If Not Me.OpenFileDialog1.FileName Is Nothing Then
SourceBookPath = Me.OpenFileDialog1.FileName
End If
'---------------------------------------------------------------------------------
Dim i As Integer
Dim j As Integer
Dim MsExcel1 = CreateObject("Excel.Application")
Dim ExcelBook1 = MsExcel1.Workbooks.Open(SourceBookPath)
Dim xlws = ExcelBook1.worksheets(1)
Dim Tblsheet As New Data.DataTable
Tblsheet.TableName = "Sheet1"
Dim ds As New DataSet
For c As Integer = 0 To 7
Dim col As New Data.DataColumn
col.ColumnName = xlws.Cells(14, c + 1).Value.ToString
Tblsheet.Columns.Add(col)
ds.Tables.Add(Tblsheet)
Next
'===========================================================
Dim lastRow As Long = 0
lastRow = MsExcel1.Range("A14").Find("*", MsExcel1.Range("A14"), XlFindLookIn.xlValues, , XlSearchOrder.xlByRows, XlSearchDirection.xlPrevious).row
For i = 15 To lastRow
Dim r As DataRow = ds.Tables("Sheet1").NewRow
For j = 1 To 8
r(j - 1) = xlws.Cells(i, j).Value
Next j
ds.Tables("Sheet1").Rows.Add(r)
Next i
DataGridView1.DataSource = ds.Tables("Sheet1")
'==========================================================
Try
TextBox1.Text = MsExcel1.Cells(6, 2).Value
TextBox2.Text = MsExcel1.Cells(6, 4).Value
DateTimePicker1.Text = MsExcel1.Cells(6, 6).Value
TextBox4.Text = MsExcel1.Cells(6, 8).Value
TextBox5.Text = MsExcel1.Cells(8, 2).Value
DateTimePicker2.Text = MsExcel1.Cells(8, 4).Value
TextBox7.Text = MsExcel1.Cells(8, 6).Value
TextBox8.Text = MsExcel1.Cells(8, 8).Value
DateTimePicker3.Text = MsExcel1.Cells(11, 2).Value
Catch ex As Exception
MsgBox(ex.Message)
End Try
ExcelBook1.Close(False)
MsExcel1.Quit()
xlws = Nothing
ExcelBook1 = Nothing
MsExcel1 = Nothing
推荐答案
For c As Integer = 0 To 7
Dim col As New Data.DataColumn
col.ColumnName = xlws.Cells(14, c + 1).Value.ToString
Tblsheet.Columns.Add(col)
ds.Tables.Add(Tblsheet)
Next
看着这段代码,表Tblsheet被添加了多少次?
在用数据填充数据表之后,尝试将数据表添加到数据集中.
Looking at this piece of code, how many times does the table Tblsheet gets added?
Try adding the datatable to the dataset after you are finished filling the datatable with data.
先生,
将错误行移出循环即可..
Sir,
Move the error line out of the loop it will work..
For c As Integer = 0 To 7
Dim col As New Data.DataColumn
col.ColumnName = xlws.Cells(14, c + 1).Value.ToString
Tblsheet.Columns.Add(col)
ds.Tables.Add(Tblsheet)
Next
更改为
Change To
For c As Integer = 0 To 7
Dim col As New Data.DataColumn
col.ColumnName = xlws.Cells(14, c + 1).Value.ToString
Tblsheet.Columns.Add(col)
Next
ds.Tables.Add(Tblsheet)
非常感谢,一切都在起作用
非常感谢...
Thank you very much, Every thing is working now
Thanks A lot...
这篇关于从Excel代码导入数据有什么问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文