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

我正在使用EPPlus创buildExcel文件。 我需要从ExcelWorksheet或ExcelWorkbook对象中获取包含工作表的文件的名称。 我无法在ExcelWorkbook对象中find任何“名称”属性,也无法从ExcelWorkbook或ExcelWorksheet返回包含的ExcelPackage。

是否有一个属性或path的属性,我可以用来从ExcelWorksheet得到一个文件名?


澄清我的意图:

我正在创build一个API来创build表格差异报告。 它主要与ADO.NET DataTables一起工作,但它也有适配器,可以采用互操作的工作表或EPPlus ExcelWorksheets,它将转换成DataTables进行处理。

我只需要包含ExcelWorksheet的文件名,这样就可以将它打印在输出报告上,以保持清晰。 这个API只能在DataTables或者与表格大致相同的对象(如Worksheets或ExcelWorksheets)的范围内工作。 它不处理数据集,工作簿,ExcelWorkbooks或ExcelPackage(使用EPPlus输出报告文件时除外)。

所以,我非常喜欢API函数只需要最less的参数,如DataTables,Worksheets,ExcelWorksheets和一些bitflag选项。 如果function的不同过载采用相似的参数(例如,采用两个DataTable或两个Worksheet,或两个ExcelWorksheets),并且不需要EPPlusinput案例的额外混乱参数,那也不错。

通过互操作,从Worksheet(mySheet.Parent.Name)获取文件名是非常简单的,EPPlus提供了简单的向下移动对象层次结构的方法(myPackage.Workbook.Worksheets [1]),所以我认为有一种方法可以从ExcelWorksheet对象中移回层次结构。

正如Donald Jansen在评论中所build议的,解决scheme是编辑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; } } 

现在,您可以将对象层次结构向上和向下缩放至您的内容。