我正在开发用VB.NET编写的Windows窗体。
在一种形式中,我需要导入一个Excel文件并读取它的数据,然后显示或存储在数据库中。当我获取包含数字的单元格时,该值是正确的,但是当我获取包含字符串的单元格时,它仅返回一位数字。
这是代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim frm_sample As New frm_saple_importexcel
frm_sample.ShowDialog()
Dim ofd As New OpenFileDialog
ofd.Filter = $"Excel File (*.xlsx)|*.xlsx|Excel File (*.xls)|*.xls|All files (*.*)|*.*"
ofd.ShowDialog()
Using spreadsheetDocument As SpreadsheetDocument =
SpreadsheetDocument.Open(ofd.FileName, False)
Dim dtSet As DataSet = New DataSet("JustAName")
Dim workbookPart As WorkbookPart = spreadsheetDocument.WorkbookPart
Dim worksheetPart As WorksheetPart = workbookPart.WorksheetParts.First()
Dim sheetData As SheetData = worksheetPart.Worksheet.Elements(Of SheetData)().First()
Dim dt = New DataTable("tt")
dt.Columns.Add(New DataColumn("k_code"))
dt.Columns.Add(New DataColumn("k_name"))
dt.Columns.Add(New DataColumn("k_unit"))
dt.Columns.Add(New DataColumn("k_group_name"))
For Each r As Row In sheetData.Elements(Of Row)()
Dim row As DataRow = dt.NewRow
row("k_code") = r.ChildElements.ElementAt(0).InnerText
row("k_name") = r.ChildElements.ElementAt(1).InnerText
row("k_unit") = r.ChildElements.ElementAt(2).InnerText
row("k_group_name") = r.ChildElements.ElementAt(3).InnerText
dt.Rows.Add(row)
Next
dtSet.Tables.Add(dt)
DataGridView1.DataSource = dtSet.Tables(0)
End Using
End Sub