You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C#中使用EPPlus读取Excel数据后实现电话号码格式转换的技术咨询

解决方法:添加Newnumber字段并格式化Phone为纯数字

我来帮你一步步实现这个需求,整个过程分为修改实体类实现格式转换逻辑在读取Excel时赋值三个核心步骤,具体如下:

1. 修改Customer类,添加Newnumber属性

先给你的Customer类新增一个Newnumber字段,用来存储格式化后的纯数字手机号:

public class Customer {
    public string Name { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public string Contact { get; set; }
    // 新增字段:存储去除前缀和空格后的纯数字手机号
    public string Newnumber { get; set; }
}

2. 编写格式转换的工具方法

我们可以写一个静态方法,专门处理手机号的格式转换——它接收原始的Phone字符串,过滤掉所有非数字字符(包括(+xxx)前缀和空格),返回纯数字结果。把这个方法放在你的Program类里即可:

private static string FormatPhoneToPureNumber(string rawPhone)
{
    // 如果原始手机号为空,直接返回空字符串
    if (string.IsNullOrWhiteSpace(rawPhone))
        return string.Empty;
    
    // 使用正则表达式替换所有非数字字符为空,只保留数字
    return System.Text.RegularExpressions.Regex.Replace(rawPhone, @"[^\d]", "");
}

这个方法通用性很强:不管原始格式是(+123) 123 456 789还是其他带符号/空格的格式,都能准确提取出纯数字。

3. 在读取Excel的代码中给Newnumber赋值

ReadXls方法创建Customer对象的位置,给Phone赋值之后,直接调用上面的转换方法给Newnumber赋值:

Customer customer = new();
customer.Name = worksheet.Cells[row, 4].Text.Trim();
customer.Phone = worksheet.Cells[row, 5].Text.Trim();
// 调用转换方法,生成纯数字的Newnumber
customer.Newnumber = FormatPhoneToPureNumber(customer.Phone);
customer.Contact = worksheet.Cells[row, 7].Text.Trim();
customer.Email = worksheet.Cells[row, 8].Text.Trim();
response.Add(customer);

4. (可选)在Main方法中输出Newnumber验证效果

如果你想直观看到转换后的结果,可以修改Main方法的输出逻辑,把Newnumber也打印出来:

static void Main(string[] args) {
    var customers = ReadXls();
    foreach (var item in customers) {
        Console.WriteLine($"Name:{item.Name}\nPhone:{item.Phone}\nNew Number:{item.Newnumber}\nContact:{item.Contact}\nEmail:{item.Email}\n");
    }
}

这样整个流程就完成了:读取Excel的原始手机号后,自动转换为纯数字存入Newnumber字段,后续你可以直接使用这个格式化后的字段进行其他操作。

内容的提问来源于stack exchange,提问作者Camila Godinho

火山引擎 最新活动