EPPlus - 从工作表中获取文件名

EPPlus - Get file name from worksheet

我正在使用 EPPlus 创建 Excel 文件。我需要从 ExcelWorksheet 或 ExcelWorkbook 对象中获取包含工作表的文件的名称。我在 ExcelWorkbook 对象中找不到任何 "name" 属性,也找不到从 ExcelWorkbook 或 ExcelWorksheet 返回包含Excel包裹。

是否有 属性 或属性路径可用于从 Excel 工作表获取文件名?


阐明我的意图:

我正在创建一个 API,它将创建 table 差异报告。它主要与 ADO.NET 数据表一起使用,但它也有采用互操作工作表或 EPPlus Excel 工作表的适配器,它将转换为数据表进行处理。

我只需要包含 ExcelWorksheet 的文件名,这样它就可以打印在输出报告上以清晰显示。 API 仅在数据表或大致相当于 table 的对象范围内真正起作用,例如工作表或 Excel 工作表。它不处理数据集、工作簿、Excel工作簿或Excel包(使用 EPPlus 输出报告文件时除外)。

因此,我非常希望 API 函数需要最少的参数,例如 DataTables、Worksheets、ExcelWorksheets 和一些位标志选项。如果函数的不同重载采用类似参数(即采用两个数据表或两个工作表,或两个 Excel 工作表),并且 EPPlus 输入案例不需要额外的杂乱参数,那也很好。

使用互操作,从工作表中获取文件名非常容易 (mySheet.Parent.Name),并且 EPPlus 提供了向下移动对象层次结构的简单方法 (myPackage.Workbook.Worksheets[1]),所以我假设会有一些方法可以从 ExcelWorksheet 对象返回层次结构。

正如 Donald Jansen 在评论中所建议的那样,解决方案是编辑 EPPlus 源代码。

将以下属性添加到 ExcelWorkbook.cs:

//Get the package containing this workbook.
public ExcelPackage Package { get { return _package; } }
//Get the name of the file of this workbook.
public String Name { get { return _package.File.Name; } }

现在您可以随心所欲地放大和缩小对象层次结构。