using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.NET.Core;
public class UtilExcelExt
{
///
/// 获取文件
///
///
///
///
public static async Task GetFileByIdAsync(string _uploadDirectory, string fileId)
{
// 实现你的逻辑来获取文件
// 可以是从文件系统、数据库或其他存储中获取 IFormFile
// 返回 IFormFile 实例或 null(如果未找到)
// 示例:从本地文件系统获取
var filePath = Path.Combine(_uploadDirectory, fileId);
if (!System.IO.File.Exists(filePath))
{
return null; // 文件未找到
}
var fileBytes = await File.ReadAllBytesAsync(filePath);
// 传入 name 参数,例如 "file" 或其他适合的名称
return new CustomFormFile(fileBytes, fileId, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "file");
}
///
/// 去掉括号
///
///
///
public static string RemoveBracketContent(string input)
{
// 使用正则表达式去除括号外的部分
return Regex.Replace(input, @"\s*[(\(].*?[)\)]\s*", "").Trim();
}
public static bool AreBracketKeywordsFullyMatching(string majorNameA, string majorNameB)
{
// 提取括号内的关键词
var keywordsA = ExtractBracketKeywords(majorNameA);
var keywordsB = ExtractBracketKeywords(majorNameB);
// 如果A和B都没有括号内容,认为匹配
if (keywordsA.Count == 0 && keywordsB.Count == 0)
{
return true;
}
// 确保A的所有关键词在B中找到,反之亦然
return keywordsA.All(keywordA => keywordsB.Any(keywordB => keywordA.Contains(keywordB) || keywordB.Contains(keywordA))) &&
keywordsB.All(keywordB => keywordsA.Any(keywordA => keywordA.Contains(keywordB) || keywordB.Contains(keywordA)));
}
private static List ExtractBracketKeywords(string majorName)
{
var match = Regex.Match(majorName, @"\s*[(\(].*?[)\)]\s*");
if (match.Success)
{
// 用逗号、顿号、空格等分隔符分割关键词
return match.Groups[1].Value.Split(new[] { '、', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
}
return new List();
}
}