На самом деле у меня есть программа, в которую я импортирую файлы Excel в базу данных MySQL
Но я застрял на некоторых файлах Excel, которые не импортируются должным образом, фактически после выбора файла Excel я загружаю его в DataGridViewно в некоторых файлах Excel, вероятно, есть некоторые отформатированные пустые ячейки , поэтому, когда есть только 3 столбца с данными, загружаются как 300 столбцов, из которых 297 пусты
Так есть ли способ заполнитьDataTable, пропуская пустые ячейки / пустые столбцы?
Вот мой метод, в котором я создаю dataGridView (для HDR сознательно установлено значение no)
Private Sub CreateDataGrid(ByRef strFileName As String)
TxtUpload.Text = ""
TxtUpload.Text = strFileName.Remove(0, strFileName.LastIndexOf("\") + 1)
TxtUpload.Tag = strFileName
Dim dt As New DataTable
Try
'IMEX = 1 e HDR = NO prende i dati formattati ed esatti dal file EXCEL
Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFileName & ";Extended Properties=""Excel 12.0;HDR=NO;IMEX=1"""
Dim con As New OleDbConnection(constring & "")
con.Open()
Dim myTableName = con.GetSchema("Tables").Rows(0)("TABLE_NAME")
Dim sqlquery As String = String.Format("SELECT * FROM [{0}]", myTableName)
Dim da As New OleDbDataAdapter(sqlquery, con)
da.Fill(dt)
Dim i As Integer = 0
For Each col As DataColumn In dt.Columns
If dt.Rows(0)(i).ToString <> "" Then
col.ColumnName = dt.Rows(0)(i).ToString
i += 1
Else
i += 1
Continue For
End If
Next
dt.Rows.Remove(dt.Rows(0))
MetroGrid1.DataSource = dt
For Each c As DataGridViewColumn In MetroGrid1.Columns
c.ReadOnly = True
c.SortMode = DataGridViewColumnSortMode.NotSortable
Next
MetroGrid1.SelectionMode = DataGridViewSelectionMode.CellSelect
PictureBox1.Visible = False
con.Close()
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Critical)
End Try
End Sub