繁体   English   中英

在Excel工作簿中获取工作表而无需打开文件

[英]Get Worksheets in Excel Workbook without opening file

我正在构建一个ASP.NET MVC 2 Intranet应用程序,用户将在其中上载数据文件。 如果文件是excel电子表格,则应为用户提供选择要导入的工作表的选项。 其中一些文件可能非常大,因此将被异步导入。 但是,最好在不保存/打开文件的情况下获取工作表列表。

这可能吗? 还是有人可以提出一个体面的解决方法(不求助于在文本框中接受工作表名称)?

我可以想到的唯一解决方法是,尽管我犹豫称其为体面,但却涉及到使用Silverlight并依赖于2007格式(Open XML或其他名称)的Excel文件。 然后,您可以使用Silverlight在本地打开文件,并(恶意地)获取工作表的列表。 您也可以使用Silverlight进行实际的上传。 或者,您可以提取相关工作表,然后仅上传这些工作表。

您可以使用System.IO.Packaging库来访问该信息,该库将允许您访问组成Excel文档的XML,从而可以查看组成Excel文档的工作表。

另一个选择是使用Open XML SDK 2.0并通过强类型对象(即WorkSheetPart访问工作表。 无论是快还是干净,因为这将需要大量工作,但是除了Alex的建议之外,还有两个选择。

如果只是将数据导入数据库,则可以使用OLE JET 4.0驱动程序,并使用System.Data.SqlConnection.GetSchema(我认为这是函数名称)访问架构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM