从VB填充的Excel数据单元中删除了0

在我的VB Windows应用程序中,我使用这段代码来创buildExcel报告:

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 = "@" 

但它不起作用。 我读了这个问题,但不能解决我的问题:

在C#中将文本格式化为Excel列(或单元格)?

在excel列中使用Microsoft.Office.Interop.Excel在c#中设置数据types如数字,文本和date

将DataTable插入Excel使用Microsoft Access数据库引擎通过OleDb

有数据后,设置单元格的格式并不总是有效,因为在转换为原始数据格式时某些数据可能在input时丢失了。 请确保您先设置单元格的格式,以便任何前导零不会被截断。