【发布时间】:2015-09-28 22:01:32
【问题描述】:
我正在使用 EPPlus 创建 Excel 文件。我需要从 ExcelWorksheet 或 ExcelWorkbook 对象中获取包含工作表的文件的名称。我在 ExcelWorkbook 对象中找不到任何“名称”属性,也找不到从 ExcelWorkbook 或 ExcelWorksheet 回到包含 ExcelPackage 的任何方式。
是否有我可以用来从 ExcelWorksheet 获取文件名的属性或属性路径?
澄清我的意图:
我正在创建一个用于创建表格差异报告的 API。它主要与 ADO.NET DataTables 一起使用,但它也有接受互操作工作表或 EPPlus ExcelWorksheets 的适配器,它将转换为 DataTables 进行处理。
我只需要包含 ExcelWorksheet 的文件名,以便可以将其打印在输出报告上以清楚起见。 API 仅在 DataTables 或大致相当于表的对象(如 Worksheets 或 ExcelWorksheets)范围内真正起作用。它不处理数据集、工作簿、ExcelWorkbooks 或 ExcelPackages(除非它使用 EPPlus 输出报告文件)。
因此,我非常希望 API 函数需要最少的参数,例如 DataTables、Worksheets、ExcelWorksheets 和一些位标志选项。如果函数的不同重载采用类似的参数(即采用两个 DataTables 或两个 Worksheets 或两个 ExcelWorksheets),并且对于 EPPlus 输入案例不需要额外的杂乱参数,这也将是一件好事。
使用互操作,从工作表 (mySheet.Parent.Name) 中获取文件名非常容易,并且 EPPlus 提供了向下移动对象层次结构 (myPackage.Workbook.Worksheets[1]) 的简单方法,所以我假设有某种方法可以从 ExcelWorksheet 对象上移回层次结构。
【问题讨论】:
-
呃,这不是倒退吗?您从文件中获取工作表。所以你已经知道了。
-
如果您愿意,您可以随时获取源代码并自行添加。但是您可能需要这样做,然后每次发布新版本时,只需转到 epplus.codeplex.com 并进入“源代码”
-
谢谢唐纳德,我不知道为什么我忽略了这一点。这就是开源的目的不是吗。 :D
-
我相信这只是将“public ExcelPackage Package {get {return _package;}} 添加到 Workbook.cs 的问题,但 CodePlex 现在遇到了一些问题。