java 通过 excel识别出手机号、姓名、省市区
时间: 2023-07-10 16:35:37 浏览: 71
可以使用 Java Excel API 和正则表达式来实现这个功能。
首先,你需要导入 Java Excel API 库,然后读取 Excel 文件中的数据。
然后,你可以使用正则表达式来匹配手机号和省市区信息,例如:
手机号:使用正则表达式 `\d{11}` 来匹配11位数字,即手机号。
省市区:你可以使用第三方库或者公开数据源来获取省市区信息,然后使用正则表达式来匹配相应的信息。
最后,将匹配到的信息保存到一个数据结构中,例如一个 List 或者一个 Map。
以下是一个简单的示例代码,可以帮助你入门:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ExcelParser {
public static void main(String[] args) {
try {
// 读取 Excel 文件
Workbook workbook = Workbook.getWorkbook(new File("data.xls"));
Sheet sheet = workbook.getSheet(0);
// 定义正则表达式
Pattern phonePattern = Pattern.compile("\\d{11}");
Pattern areaPattern = Pattern.compile("上海市浦东新区");
// 定义数据结构
List<String> names = new ArrayList<>();
List<String> phones = new ArrayList<>();
List<String> areas = new ArrayList<>();
// 遍历所有单元格
for (int row = 0; row < sheet.getRows(); row++) {
for (int col = 0; col < sheet.getColumns(); col++) {
Cell cell = sheet.getCell(col, row);
String text = cell.getContents();
// 匹配手机号
Matcher phoneMatcher = phonePattern.matcher(text);
if (phoneMatcher.matches()) {
phones.add(text);
}
// 匹配省市区
Matcher areaMatcher = areaPattern.matcher(text);
if (areaMatcher.matches()) {
areas.add(text);
}
// 匹配姓名
if (!phoneMatcher.matches() && !areaMatcher.matches()) {
names.add(text);
}
}
}
// 输出结果
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i) + " " + phones.get(i) + " " + areas.get(i));
}
// 关闭 Excel 文件
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```