1
我需要您对此问题的指导/帮助。我以格式00-00-00-00-00-000格式在数据网格视图中格式化数据。但是,当我将这些数据导出到excel表格时,这种格式不见了,数据以这种形式出现 - 0000000000000.格式不见了。我写在vb.net。请为我提供帮助\解决此问题。datagrid中格式化的数据以未格式化的方式导出为excel
我需要您对此问题的指导/帮助。我以格式00-00-00-00-00-000格式在数据网格视图中格式化数据。但是,当我将这些数据导出到excel表格时,这种格式不见了,数据以这种形式出现 - 0000000000000.格式不见了。我写在vb.net。请为我提供帮助\解决此问题。datagrid中格式化的数据以未格式化的方式导出为excel
你可以沿着线所需要的细胞的样式设置的东西: NumberFormat
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Dim ExcelApp As Excel.Application
Dim ExcelWorkBk As Excel.Workbook
Dim ExcelWorkSht As Excel.Worksheet
Public Function exportToExcel(ByVal dgv As DataGridView)
Try
exportToExcel = True
ExcelApp = New Excel.Application
ExcelWorkBk = ExcelApp.Workbooks.Add()
ExcelWorkSht = ExcelWorkBk.Sheets("Sheet1")
''// Rename the sheet
ExcelWorkSht.Name = "MySheet"
ExcelWorkSht.Tab.ThemeColor = Excel.XlThemeColor.xlThemeColorAccent1
Dim style As Excel.Style = ExcelWorkSht.Application.ActiveWorkbook.Styles.Add("StyleName")
style.Font.Bold = True
style.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGreen)
style.NumberFormat = format
Dim styleHeader As Excel.Style = ExcelWorkSht.Application.ActiveWorkbook.Styles.Add("Header")
styleHeader.Font.Bold = True
styleHeader.ShrinkToFit = True
styleHeader.Orientation = Excel.XlOrientation.xlHorizontal
styleHeader.VerticalAlignment = Excel.XlVAlign.xlVAlignJustify
styleHeader.WrapText = False
styleHeader.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.WhiteSmoke)
''// get all visible columns in display index order
Dim ColNames As List(Of String) = (From col As DataGridViewColumn _
In dgv.Columns.Cast(Of DataGridViewColumn)() _
Where (col.Visible = True) _
Order By col.DisplayIndex _
Select col.Name).ToList
Dim colcount = 0
For Each s In ColNames
colcount += 1
ExcelWorkSht.Cells(1, colcount) = dgv.Columns.Item(s).HeaderText
ExcelWorkSht.Cells(1, colcount).style = "Header"
Next
''// get the values and formatt them
For rowcount = 0 To dgv.Rows.Count - 1 ''// for each row
colcount = 0
For Each s In ColNames ''// for each column
colcount += 1
''xlWorkSheet.Cells(rowcount + 2, colcount) = dgv.Rows(rowcount).Cells(s).Value
ExcelWorkSht.Cells(rowcount + 2, colcount) = dgv.Rows(rowcount).Cells(s).FormattedValue
If colcount = 4 Then ''// current Column by it's Index
If dgv.Rows(rowcount).Cells(s).FormattedValue = 1 Then
''// formatt this column with the style 'StyleName'
ExcelWorkSht.Cells(rowcount + 2, colcount).Style = "StyleName"
End If
End If
Next
Next
ExcelWorkSht.Range("$D$1:$D$100").AutoFilter(Field:=1, Criteria1:="", Operator:=Excel.XlAutoFilterOperator.xlFilterAutomaticFontColor)
MsgBox("Exported successfully to Excel")
ExcelApp.Visible = True
Catch ex As Exception
exportToExcel = False
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
End Function