什麼是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
您可以忽略objData部分;我意識到,現在通過代碼,我不需要這些。 – WebEngineer 2014-10-11 17:57:52
您可以忽略objData部分;我意識到,現在通過代碼,我不需要這些。但是,與我相關的是,我使用數據表'wshUS.Cells(「A1」)LoadFromDataTable(objTable,True)'將數據加載到工作表中,因此您的分析建議似乎不適用於此。電話號碼的數據讀取爲整數,因此它已經是一個數字。在你的例子中,如果數字字符串是空的,單元格中會產生什麼? – WebEngineer 2014-10-11 18:05:52
我明白你的意思了。看我的編輯。我不認爲有一個字符串可以工作,因爲excel會將它看作是這樣的(即在單元的角落出現的小錯誤三角形)。我認爲你唯一的選擇就是在它轉出後使用循環將其轉換爲數字。或者在數據表中改變它,如果可能的話。 – Ernie 2014-10-13 12:32:04