EPPlus -从工作表获取文件名

本文关键字:获取 文件名 工作 EPPlus | 更新日期: 2023-09-27 18:15:00

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

是否有属性或属性路径,我可以使用从excel工作表到文件名?


澄清我的意图:

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

我只需要包含ExcelWorksheet的文件名,以便它可以清晰地打印在输出报告上。API只真正在数据表或对象的范围内工作,这些对象大致相当于表,如工作表或excel工作表。它不处理数据集、工作簿、ExcelWorkbooks或ExcelPackages(除非它使用EPPlus输出报告文件)。

所以,我非常希望API函数需要最少的参数,如数据表,工作表,excel工作表和一些位标志选项。如果函数的不同重载采用类似的参数(即采用两个数据表或两个工作表,或两个excel工作表),并且不需要为EPPlus输入case提供额外的杂乱参数,那也会很好。

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

EPPlus -从工作表获取文件名

正如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; } }

现在您可以根据您的核心内容缩放对象层次结构。