0
在將數據從excel導入到VB.net中的datagridview期間,我遇到了一個問題。 而我不知道或從哪裏開始尋找問題。這裏的情況: 我有一個Excel文件,vb.net將錯誤的數據從excel導入到datagridview中
Column A(General) Column B(Time)
Adarayan, Dianne 6:00 AM
Bacalla, Cruz 1:30 PM
Mariano, Kevin RD
Roses, Alice VL
Ligris, Paul RD/OT 7:30
輸出/顯示在datagridview的:
Team Member TimeSchedule
Adarayan, Dianne 0.25
Bacalla, Cruz 0.5625
Mariano, Kevin RD
Roses, Alice VL
Ligris, Paul RD/OT 7:30
我不知道爲什麼會這樣,當字符串是像第2行會顯示浮。 請幫幫忙。
這是我從excel導入數據到datagridview的代碼。
OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
OpenFileDialog1.Filter = "Excel Files 2007 (*.xlsx)|*.xlsx|Excel Files 1997-2003 (*.xls)|*.xls"
If OpenFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
Try
xlsApp = New Excel.Application
xlsWorkBook = xlsApp.Workbooks.Open(OpenFileDialog1.FileName)
xlsWorkSheet = xlsWorkBook.Worksheets("WORK SCHEDULE")
'unprotect file
'Get last row used
'lastUsedRow = xlsWorkSheet.Range("I" & xlsWorkSheet.Rows.Count).End(Excel.XlDirection.xlUp).Row
'Get last column
'lastUsedCol = xlsWorkSheet.Cells(1, xlsWorkSheet.Columns.Count).End(Excel.XlDirection.xlToLeft).Column
Dim fi As New FileInfo(OpenFileDialog1.FileName)
Dim sConnectionStringz As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & OpenFileDialog1.FileName & ";" & "Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""
Dim objConn As New OleDbConnection(sConnectionStringz)
objConn.Open()
Dim x As Integer = 0
Dim start As Integer
Dim ends As Integer
For Each c In xlsWorkSheet.Range("B1:B300").Cells
If IsNothing(c.value) Then
x = x + 1
ElseIf Not IsNothing(c.Value) Then
x = x + 1
If c.value.ToString.ToUpper <> "START" And c.value.ToString.ToUpper <> "END" Then
ElseIf c.value.ToString.ToUpper = "START" Then
start = x
ElseIf c.value.ToString.ToUpper = "END" Then
ends = x
End If
End If
Next
Dim campaign = start + 1
For Each c In xlsWorkSheet.Range("B" & campaign & ":B" & campaign).Cells
If Not IsNothing(c.value) Then
campaignName = c.value.ToString
End If
Next
Dim objAdapter1 As New OleDbDataAdapter("SELECT * FROM [WORK SCHEDULE$B" & start & ":I" & ends & "]", objConn)
Dim objDataset1 As New DataSet
objAdapter1.Fill(objDataset1)
DataGridView1.DataSource = objDataset1.Tables(0).DefaultView
With DataGridView1
.RowHeadersVisible = False
.Columns(0).HeaderCell.Value = "Team Members"
.Columns(1).HeaderCell.Value = "Monday"
.Columns(2).HeaderCell.Value = "Tuesday"
.Columns(3).HeaderCell.Value = "Wednesday"
.Columns(4).HeaderCell.Value = "Thursday"
.Columns(5).HeaderCell.Value = "Friday"
.Columns(6).HeaderCell.Value = "Saturday"
.Columns(7).HeaderCell.Value = "Sunday"
End With
objConn.Close()
Finally
End Try
End If
謝謝你這麼多的時間,但有沒有另一種方法,我可以將第二行及時轉換爲字符串,以便顯示正確的數據? – Aljie
正如他們所說的那樣,總有更多的方法來給貓換膚。如果你不能在Excel中分割數據,你將需要編寫代碼來檢查數據中的內容,並提取你需要的內容。除非沒有別的選擇,否則這不是我想要採用的路線。 – Mych
我已經有這樣的代碼:TRIM(FORMAT(F2,'hh:mm AM/PM')),但只有早上6點轉換爲12:25 AM,這是錯誤的。 – Aljie