【问题标题】:Excel cell Format Changes in textExcel 单元格文本中的格式更改
【发布时间】:2009-12-14 10:57:38
【问题描述】:

我使用过 microsoft Excel 表..我在 excel 表中输入了不同的值,没有问题.. 但我已经掉了一些像这样的数字列(00023785678)..在这个列中第一个零是不明白的.. 所以我去更改文本单元格格式的列..

如何在 Vb.net 代码中创建.. 我已经使用了这个方法...

       Dim oXL As Excel.Application
            Dim oWB As Excel.Workbook
            Dim oSheet As Excel.Worksheet
            Dim columnrange = oSheet.Columns
            Dim therange = oSheet.UsedRange
            ' Dim wb As Microsoft.Office.Interop.Excel.Workbook
            ''Dim style As Microsoft.Office.Interop.Excel.Style
            oXL = CreateObject("Excel.Application")
            oXL.Visible = True
            oWB = oXL.Workbooks.Add
            oSheet = oWB.ActiveSheet
            'oXL.Selection.num()
            oXL.Selection.NumberFormat = "Text"

            For c As Integer = 0 To dt.Columns.Count - 1
                oSheet.Cells(1, c + 1).Value = dt.Columns(c).ColumnName

            Next
            For rCnt As Int16 = 2 To therange.Rows.Count
                Dim rowArray(therange.Columns.Count) As String
                For cCnt As Int16 = 1 To therange.Columns.Count
                    Dim Obj = CType(therange.Cells(rCnt, cCnt), Excel.Range)
                    Dim celltext As String
                    celltext = Obj.Value.ToString
                    rowArray((cCnt - 1)) = celltext

                Next
            Next

            For r As Integer = 0 To dt.Rows.Count - 1
                For c As Integer = 0 To dt.Columns.Count - 1
                    oSheet.Cells(r + 2, c + 1).Value = dt.Rows(r)(c)
                    oSheet.Cells(r + 2, c + 1).numberformat = "0"
                Next
            Next
            'With oWB
            '    .Cells(seriesName.GetUpperBound(0) + 7, 3).numberformat = "#.00"
            '    .Cells(seriesName.GetUpperBound(0) + 7, 5).numberformat = "0"
            'End With


            'With oSheet.Range("A1", "ZZ1")
            '    .Font.Bold = True
            '    .VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
            '    .HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter
            '    .EntireColumn.AutoFit()
            '    .EntireRow.AutoFit()
            'End With

            Dim FirstRow As Long
            Dim SecentRow As Long
            Dim ThirdRow As Long
            With oSheet.Range("A1", "BD1")
                FirstRow = 1
                SecentRow = 2
                ThirdRow = 3
                .Rows(0 + 1).EntireRow.Insert()
                .Rows(0 + 1).EntireRow.Insert()
                .Rows(0 + 1).EntireRow.Insert()
                .Font.Bold = True
                .VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
                .HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter
                .EntireColumn.AutoFit()
                .EntireRow.AutoFit()

                '.EntireRow.TextToColumns()


                .Offset.Justify()
                .Offset.BorderAround()
                .Offset.WrapText = True
                .Offset.Select()
            End With

但现在我没有得到答案... 请帮助我...

【问题讨论】:

    标签: vb.net excel


    【解决方案1】:

    在要视为文本的单元格中使用前导单引号 ' 为值添加前缀。这会强制 Excel 将单元格视为文本,并且单引号在工作表中将不可见。

    【讨论】:

      【解决方案2】:
      oSheet.Range("A1", "BD1").NumberFormat = "@"
      

      这样就可以了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多