我将电话号码存储为一串数字,例如:6028035615,但在查询时将它们作为整数进行CAST。我想以正确的电话号码格式格式化单元格中的数据,例如Excel(602)803-5615。但是,如何声明我想要使用的格式类型? 如果我使用:
objData.Columns.Add("HPhone", GetType(Integer))
wshUS.Column(i).Width = 15 ' PhoneH
wshUS.Column(i).Style.Numberformat.Format = "###-###-####"
或
wshUS.Column(i).Style.Numberformat.Format = "(###) ###-####"
空白单元格显示为 - 在前一种情况下或() - 在后者中。 是否有一种格式类型,我可以在=之后输入以获取Excel的电话号码? 我如何使用条件格式来克服这个问题? 我正在用VB.NET编写代码隐藏的网页。
答案 0 :(得分:0)
什么是objData
?一般来说,您不需要在工作表中添加列 - 当您第一次引用单元格时,EPPlus会自动执行此操作。我的VB有点生疏,但这对我来说很好:
<TestMethod> _
Public Sub PhoneNumberFormatTest()
Dim file = New FileInfo("c:\temp\temp.xlsx")
If file.Exists Then
file.Delete()
End If
Dim pck = New ExcelPackage(file)
Dim workbook = pck.Workbook
Dim worksheet = workbook.Worksheets.Add("newsheet")
Const number As String = "6028035615"
Const format As String = "(###) ###-####"
Dim startcell = worksheet.Cells(1, 1)
startcell.Value = Int64.Parse(number)
startcell.Offset(1, 0).Value = Int64.Parse(number) + 1
worksheet.Column(1).Width = 15
worksheet.Column(1).Style.Numberformat.Format = format
pck.Save()
End Sub
我下载了EPPlus 3的源代码解决方案(稳定版)并将其作为单元测试运行...
编辑:添加字符串操作:
<TestMethod> _
Public Sub PhoneNumberFormatTest()
Dim file = New FileInfo("c:\temp\temp.xlsx")
If file.Exists Then
file.Delete()
End If
Dim pck = New ExcelPackage(file)
Dim workbook = pck.Workbook
Dim worksheet = workbook.Worksheets.Add("newsheet")
Const number As String = "6028035615"
Const format As String = "(###) ###-####"
Dim startcell = worksheet.Cells(1, 1)
'Directly to numbers with parse
startcell.Value = Int64.Parse(number)
startcell.Offset(1, 0).Value = Int64.Parse(number) + 1
'OR as a string back to a number.
Dim stringcell = startcell.Offset(2, 0)
stringcell.Value = number
stringcell.Value = Int64.Parse(DirectCast(stringcell.Value, String))
stringcell.Style.Numberformat.Format = "(###) ###-####"
'As string - does not work as number
stringcell.Offset(0, 1).Value = number
stringcell.Offset(0, 1).Style.Numberformat.Format = "(###) ###-####"
worksheet.Column(1).Width = 15
worksheet.Column(1).Style.Numberformat.Format = format
pck.Save()
End Sub