Skip to content

ExcelParser rejects uppercase .XLS and .XLSX extensions #5

Description

@PengjiangXiao

问题描述

ExcelParser.createWorkbookFromPath 使用区分大小写的字符串比较判断 Excel 扩展名:

extension.Equals(".xls")
extension.Equals(".xlsx")

因此内容完全有效、但扩展名为 .XLS.XLSX 的文件会被错误拒绝。

确认环境:

  • 分支:master
  • 提交:a736f3b850bb454268093b8c1a409627649393e8
  • 文件:EasyDbc/Parsers/ExcelParser.cs

复现步骤

  1. 创建一个有效的 source.xlsx
  2. 将其重命名为 source.XLSX
  3. 调用 ParseFirstSheetFromPath

同样的问题也可以通过把 .xls 重命名为 .XLS 复现。

实际结果

扩展名无法匹配 .xls.xlsx,解析器返回格式错误,或者由于调用方没有检查状态而进一步变成 UnknownError

期望结果

.xls.XLS.xlsx.XLSX 应被视为等价扩展名。

建议修复方式

if (extension.Equals(
    ".xls",
    StringComparison.OrdinalIgnoreCase))
{
    // ...
}
else if (extension.Equals(
    ".xlsx",
    StringComparison.OrdinalIgnoreCase))
{
    // ...
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions