从VB填充的excel数据单元格中删除前导0
本文关键字:删除 单元格 数据 VB 填充 excel | 更新日期: 2023-09-27 18:04:51
在我的vb Windows应用程序中,我使用以下代码创建excel报表:
Public Sub CreateExcelFile(ByVal InputDataTable As DataTable, ByVal FileName As String)
Dim ExcelApp As New Microsoft.Office.Interop.Excel.ApplicationClass
Dim ExcelWorkbook As Microsoft.Office.Interop.Excel.Workbook = Nothing
Dim ExcelWorkSheet As Microsoft.Office.Interop.Excel.Worksheet = Nothing
Dim ColumnIndex As Integer = 0
Dim RowIndex As Integer = 1
Try
ExcelWorkbook = ExcelApp.Workbooks.Add()
ExcelWorkSheet = ExcelWorkbook.ActiveSheet()
For Each c As DataColumn In InputDataTable.Columns
ColumnIndex += 1
ExcelApp.Cells(RowIndex, ColumnIndex) = c.ColumnName
Next
For Each r As DataRow In InputDataTable.Rows
RowIndex += 1
ColumnIndex = 0
For Each c As DataColumn In InputDataTable.Columns
ColumnIndex += 1
ExcelApp.Cells(RowIndex, ColumnIndex) = r(c.ColumnName).ToString
Next
Next
ExcelWorkSheet.Columns.AutoFit()
ExcelWorkbook.SaveAs(FileName)
ExcelWorkbook.Close()
ExcelApp.Quit()
Catch ex As Exception
MsgBox("Err", MsgBoxStyle.Information + MsgBoxStyle.MsgBoxRtlReading)
Finally
ExcelApp = Nothing
ExcelWorkbook = Nothing
ExcelWorkSheet = Nothing
ColumnIndex = Nothing
RowIndex = Nothing
End Try
End Sub
如果我有一个代码或电话号码,第一个字符是0,它不会显示在excel文件中。我用下面的代码来解决这个问题:
ExcelWorkSheet.Activate()
ExcelWorkSheet.Cells().Columns.NumberFormat = "@"
ExcelWorkSheet.Cells().EntireColumn.NumberFormat = "@"
但它不起作用。我读了这个问题,但不能解决我的问题:
将Excel列(或单元格)格式化为c#中的文本?
使用Microsoft.Office.Interop.Excel在c#中设置数据类型,如数字、文本和日期
使用Microsoft Access Database Engine通过OleDb插入数据表
在单元格中有数据后设置其格式并不总是有效,因为在转换为原始数据格式时可能会丢失一些数据。请确保先设置单元格的格式,这样任何前导零都不会被截断。