首页 新闻 会员 周边 捐助

Magicodes.IE导入Excel的报错信息都是英文,改成怎么配置成中文呢

0
悬赏园豆:50 [已解决问题] 解决于 2024-08-31 14:27

技术追梦人的主页 技术追梦人 | 初学一级 | 园豆:34
提问于:2024-08-22 10:48
< >
分享
最佳答案
0

用插件携带的配置来处理,使用IImportResultFilter来解决,自行进行过滤
导入结果筛选器可以修改导入结果包括验证错误信息(比如动态修改错误标注),非常适合对导入数据和错误验证内容进行二次动态加工,比如加入自定义校验逻辑、验证消息多语言翻译等等。
导入结果筛选器(IImportResultFilter)的使用
准备Dto
Excel准备好了,我们需要准备一个Dto:
[ExcelImporter(ImportResultFilter = typeof(ImportResultFilterTest), IsLabelingError = true)]
public class ImportResultFilterDataDto1
{
/// <summary>
/// 产品名称
/// </summary>
[ImporterHeader(Name = "产品名称")]
public string Name { get; set; }

/// <summary>
///     产品代码
///     长度验证
///     重复验证
/// </summary>
[ImporterHeader(Name = "产品代码", Description = "最大长度为20", AutoTrim = false, IsAllowRepeat = false)]
public string Code { get; set; }

}
如上述代码所示,我们创建了名为“ImportResultFilterDataDto1”的Dto,使用ExcelImporter特性中的ImportResultFilter属性指定了导入结果筛选器的类型。

创建类并实现接口IImportResultFilter
接下来我们就创建一个类并实现IImportResultFilter接口:

public class ImportResultFilterTest : IImportResultFilter
{
/// <summary>
/// 本示例修改数据错误验证结果,可用于多语言等场景
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="importResult"></param>
/// <returns></returns>
public ImportResult<T> Filter<T>(ImportResult<T> importResult) where T : class, new()
{
var errorRows = new List<int>()
{
5,6
};
var items = importResult.RowErrors.Where(p => errorRows.Contains(p.RowIndex)).ToList();

    for (int i = 0; i < items.Count; i++)
    {
        for (int j = 0; j < items[i].FieldErrors.Keys.Count; j++)
        {
            var key = items[i].FieldErrors.Keys.ElementAt(j);
            var value = items[i].FieldErrors[key];
            items[i].FieldErrors[key] = value?.Replace("存在数据重复,请检查!所在行:", "Duplicate data exists, please check! Where:");
        }
    }
    return importResult;
}

}
如上述代码所示,我们将重复错误的验证提示修改为了“Duplicate data exists, please check! Where”。接下来,我们需要编写导入代码:

public async Task ImportResultFilter_Test()
{
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Errors", "数据错误.xlsx");
var labelingFilePath = Path.Combine(Directory.GetCurrentDirectory(), $"{nameof(ImportResultFilter_Test)}.xlsx");
var result = await Importer.Import<ImportResultFilterDataDto1>(filePath, labelingFilePath);
}

可以根据自己的定制需求进行验证提醒修改

技术追梦人 | 初学一级 |园豆:34 | 2024-08-31 14:24
其他回答(1)
0

来自AI:

要将AgICodes.IE导入Excel的报错信息配置为中文,您可以尝试以下步骤:

  1. 确保您的操作系统和Microsoft Office软件已经设置为中文语言环境。您可以在控制面板(Windows)或系统偏好设置(Mac)中找到语言和区域设置,将其设置为中文。
  2. 在Excel软件中,点击菜单栏上的“文件”(或“Office”)选项,然后选择“选项”。
  3. 在弹出的选项对话框中,选择“语言”(或类似的名称)选项卡。
  4. 在“语言首选项”部分,将“选择显示 Microsoft Office 的帮助和屏幕提示的语言”设置为中文。如果需要,还可以选择其他相关选项,如日期、时间和货币格式。
  5. 确认并关闭选项对话框。重新启动Excel软件。
    现在,当您使用AgICodes.IE导入Excel时,报错信息应该会显示为中文了。请注意,具体的菜单和选项名称可能会因不同的Excel版本而有所不同,但一般来说,您可以按照类似的步骤进行设置。
    如果您仍然看到英文的报错信息,可以尝试重新安装AgICodes.IE插件,确保插件本身也是中文版本。或者,您可以咨询AgICodes.IE的支持团队,获得更具体的指导和解决方案。
收获园豆:50
Technologyforgood | 园豆:7541 (大侠五级) | 2024-08-23 08:00

谢谢回答,不好意思呀,我这边的问题是用https://github.com/dotnetcore/Magicodes.IE这个组件导入excel返回的报错信息
我这边要的net组件这个使用方法。

支持(0) 反对(0) 技术追梦人 | 园豆:34 (初学一级) | 2024-08-23 10:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册