
上圖中,我想把DataGridView中的資料匯出至Excel,但是匯出后發現下述兩個問題,請幫忙解決,謝謝。
【問題一】身份證一列中,出現了科學記數“2.10503E+17”如下圖所示,如何顯示正常的身份證號碼?

【問題二】修改時間、填表時間默認顯示“#######”,如下圖所示,如何正常顯示單元格內容?

附:匯出至Excel代碼:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim kk As New SaveFileDialog()
kk.Title = "保存EXECL檔案"
kk.Filter = "EXECL檔案(*.xls) |*.xls |所有檔案(*.*) |*.*"
kk.FilterIndex = 1
If kk.ShowDialog() = DialogResult.OK Then
Dim FileName As String = kk.FileName ' + ".xls"
If File.Exists(FileName) Then
File.Delete(FileName)
End If
Dim objFileStream As FileStream
Dim objStreamWriter As StreamWriter
Dim strLine As String = ""
objFileStream = New FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write)
objStreamWriter = New StreamWriter(objFileStream, System.Text.Encoding.Unicode)
For i As Integer = 0 To DataGridView1.Columns.Count - 1
If DataGridView1.Columns(i).Visible = True Then
strLine = strLine + DataGridView1.Columns(i).HeaderText.ToString() + Convert.ToChar(9)
End If
Next
objStreamWriter.WriteLine(strLine)
strLine = ""
For i As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Columns(0).Visible = True Then
If DataGridView1.Rows(i).Cells(0).Value Is Nothing Then
strLine = (strLine & " ") + Convert.ToChar(9)
Else
strLine = strLine + DataGridView1.Rows(i).Cells(0).Value.ToString() + Convert.ToChar(9)
End If
End If
For j As Integer = 1 To DataGridView1.Columns.Count - 1
If DataGridView1.Columns(j).Visible = True Then
If DataGridView1.Rows(i).Cells(j).Value Is Nothing Then
strLine = (strLine & " ") + Convert.ToChar(9)
Else
Dim rowstr As String = ""
rowstr = DataGridView1.Rows(i).Cells(j).Value.ToString()
If rowstr.IndexOf(vbCr & vbLf) > 0 Then
rowstr = rowstr.Replace(vbCr & vbLf, " ")
End If
If rowstr.IndexOf(vbTab) > 0 Then
rowstr = rowstr.Replace(vbTab, " ")
End If
strLine = strLine + rowstr + Convert.ToChar(9)
End If
End If
Next
objStreamWriter.WriteLine(strLine)
strLine = ""
Next
objStreamWriter.Close()
objFileStream.Close()
MessageBox.Show(Me, "保存EXCEL成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
uj5u.com熱心網友回復:
用的什么?npoi么?問題一要把d列格式設為文本。
問題二要設定列寬。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/214442.html
標籤:VB.NET
