VBMAN.Formater - 格式化工具对象
概述
VBMAN.Formater 提供了各种数据格式化功能,包括数字、日期、文件大小等的格式化显示。
使用方式:通过链式调用 Data(值).ReturnXXX() 的方式使用。
核心特性
- 数字格式化: 货币、百分比、千分位、罗马数字
- 日期格式化: 多种日期时间格式、相对时间
- 文件大小: 自动转换为 B/KB/MB/GB/TB/PB
- 文本格式化: 对齐、填充、截断、命名风格转换
- 掩码格式化: 手机号、身份证号、邮箱脱敏
- 编码转换: HTML编码、URL编码、Base64、十六进制
方法
Data
设置数据源,返回 Me 支持链式调用(入口方法)
vb
Public Function Data(ByVal Source As Variant) As cFormater文件大小格式化
ReturnFileSize
返回格式化后的文件大小字符串 (B/KB/MB/GB/TB/PB)
vb
Public Function ReturnFileSize(Optional ByVal DecimalPlaces As Long = 2, Optional ByVal ForceUnit As String = "") As String时间格式化
ReturnTimeAgo
返回相对时间描述(刚刚、5秒前、3分钟前等)
vb
Public Function ReturnTimeAgo() As StringReturnDateTime
返回格式化日期时间
vb
Public Function ReturnDateTime(Optional ByVal FormatStr As String = "yyyy-MM-dd HH:mm:ss") As StringReturnShortDate
返回日期(短格式 yyyy-MM-dd)
vb
Public Function ReturnShortDate() As StringReturnShortTime
返回时间(短格式 HH:mm:ss)
vb
Public Function ReturnShortTime() As String数字格式化
ReturnNumber
返回格式化数字(千分位)
vb
Public Function ReturnNumber(Optional ByVal DecimalPlaces As Long = 0) As StringReturnCurrency
返回货币格式
vb
Public Function ReturnCurrency(Optional ByVal Symbol As String = "¥") As StringReturnPercent
返回百分比
vb
Public Function ReturnPercent(Optional ByVal DecimalPlaces As Long = 0) As StringReturnRoman
返回罗马数字(支持 1-3999)
vb
Public Function ReturnRoman() As String文本格式化
ReturnTruncate
返回限制长度的文本,超长时显示省略号
vb
Public Function ReturnTruncate(ByVal MaxLength As Long, Optional ByVal Suffix As String = "...") As StringReturnPadLeft
返回左侧填充后的文本
vb
Public Function ReturnPadLeft(ByVal TotalWidth As Long, Optional ByVal PadChar As String = " ") As StringReturnPadRight
返回右侧填充后的文本
vb
Public Function ReturnPadRight(ByVal TotalWidth As Long, Optional ByVal PadChar As String = " ") As StringReturnProperCase
返回首字母大写
vb
Public Function ReturnProperCase() As StringReturnCamelCase
返回驼峰命名 (helloWorldExample)
vb
Public Function ReturnCamelCase() As StringReturnPascalCase
返回帕斯卡命名 (HelloWorldExample)
vb
Public Function ReturnPascalCase() As StringReturnSnakeCase
返回下划线命名 (hello_world_example)
vb
Public Function ReturnSnakeCase() As StringReturnKebabCase
返回短横线命名 (hello-world-example)
vb
Public Function ReturnKebabCase() As StringReturnHtmlEncode
返回HTML转义文本
vb
Public Function ReturnHtmlEncode() As StringReturnUrlEncode
返回URL编码文本
vb
Public Function ReturnUrlEncode() As String掩码格式化
ReturnMaskedPhone
返回手机号掩码 (138****8888)
vb
Public Function ReturnMaskedPhone() As StringReturnMaskedIDCard
返回身份证号掩码 (110101********1234)
vb
Public Function ReturnMaskedIDCard() As StringReturnMaskedEmail
返回邮箱掩码 (a***@gmail.com)
vb
Public Function ReturnMaskedEmail() As String其他格式化
ReturnHex
返回十六进制字符串
vb
Public Function ReturnHex() As StringReturnBase64
返回Base64编码
vb
Public Function ReturnBase64() As StringReturnBooleanText
返回布尔值的友好文本
vb
Public Function ReturnBooleanText(Optional ByVal TrueText As String = "是", Optional ByVal FalseText As String = "否") As StringReturnFileName
返回文件名(含扩展名)
vb
Public Function ReturnFileName() As StringReturnFileNameWithoutExt
返回文件名(不含扩展名)
vb
Public Function ReturnFileNameWithoutExt() As StringReturnFileExt
返回文件扩展名
vb
Public Function ReturnFileExt() As StringReturnFilePath
返回文件路径(不含文件名)
vb
Public Function ReturnFilePath() As String综合示例
示例1: 基本格式化
vb
Private Sub BasicFormat()
' 货币显示
Dim price As Currency
price = 1234567.89
LabelPrice.Caption = VBMAN.Formater.Data(price).ReturnCurrency("¥")
' 结果: ¥1,234,567.89
' 文件大小
Dim fileSize As Currency
fileSize = 1536000000
LabelSize.Caption = VBMAN.Formater.Data(fileSize).ReturnFileSize()
' 结果: 1.43 GB
' 百分比
Dim rate As Double
rate = 0.8567
LabelRate.Caption = VBMAN.Formater.Data(rate).ReturnPercent(2)
' 结果: 85.67%
' 相对时间
Dim postTime As Date
postTime = DateAdd("h", -2, Now)
LabelTime.Caption = VBMAN.Formater.Data(postTime).ReturnTimeAgo()
' 结果: 2小时前
End Sub示例2: 文本格式化
vb
Private Sub TextFormat()
Dim text As String
text = "hello world example"
' 驼峰命名
Debug.Print VBMAN.Formater.Data(text).ReturnCamelCase()
' 结果: helloWorldExample
' 帕斯卡命名
Debug.Print VBMAN.Formater.Data(text).ReturnPascalCase()
' 结果: HelloWorldExample
' 截断文本
Debug.Print VBMAN.Formater.Data("这是一段很长的文本").ReturnTruncate(6)
' 结果: 这是一段...
' 左填充
Debug.Print VBMAN.Formater.Data("123").ReturnPadLeft(6, "0")
' 结果: 000123
End Sub示例3: 数据脱敏
vb
Private Sub MaskSensitiveData()
' 手机号脱敏
Debug.Print VBMAN.Formater.Data("13812345678").ReturnMaskedPhone()
' 结果: 138****5678
' 身份证号脱敏
Debug.Print VBMAN.Formater.Data("110101199001011234").ReturnMaskedIDCard()
' 结果: 110101********1234
' 邮箱脱敏
Debug.Print VBMAN.Formater.Data("admin@gmail.com").ReturnMaskedEmail()
' 结果: a***@gmail.com
End Sub示例4: 列表格式化显示
vb
Private Sub FormatListView()
Dim li As ListItem
For Each li In ListView1.ListItems
' 格式化金额列
li.SubItems(2) = VBMAN.Formater.Data(li.SubItems(2)).ReturnCurrency()
' 格式化日期列
li.SubItems(3) = VBMAN.Formater.Data(CDate(li.SubItems(3))).ReturnShortDate()
' 格式化文件大小列
li.SubItems(4) = VBMAN.Formater.Data(li.SubItems(4)).ReturnFileSize()
Next li
End Sub最佳实践
- 链式调用: 使用
Data(值).ReturnXXX()的方式保持代码简洁 - 类型检查: 格式化前确保数据类型正确,错误类型会返回默认值
- 本地化: 根据用户地区使用相应的货币符号和日期格式
- 一致性: 同类数据使用相同的格式化方式