我正在构建一个ASP.NET MVC2 intranet应用程序,用户可以在其中上传数据文件。如果文件是excel电子表格,则应允许用户选择要导入的工作表。其中一些文件可能非常大,因此将以异步方式导入。但如果不保存/打开文件就能抓取工作表的列表,那就太好了。
这个是可能的吗?或者,有没有人可以建议一个好的解决方法(而不是在文本框中接受工作表名称)?
发布于 2010-09-16 09:57:01
您可以通过使用Excel库来访问该信息,该库允许您访问构成System.IO.Packaging文档的XML库,从而允许您查看构成该文档的工作表。
另一种选择是使用Open XML SDK2.0并通过强类型对象访问工作表,即WorkSheetPart。这两个都不会快或干净,因为这将是一个很大的工作量,但除了Alex的建议之外,还有另外两个选择。
发布于 2010-09-16 05:46:51
我能想到的唯一的解决办法,尽管我不愿说它是像样的,涉及到使用Silverlight,并依赖于2007格式的Excel文件(Open XML或其他名称)。然后你可以在本地用Silverlight打开这个文件,然后(hackishly)得到一个工作表的列表。您也可以使用Silverlight进行实际的上传。或者,您可以提取相关的工作表,然后只上传这些工作表。
发布于 2010-10-25 21:40:20
如果您只是简单地将数据导入数据库,则可以使用OLE JET 4.0驱动程序并使用System.Data.SqlConnection.GetSchema (我认为这是函数名)来访问模式。
https://stackoverflow.com/questions/3721824
复制相似问题