c#VS Express 2012 excel xml读取和列表

我开始用C#编程。 我可以使用Visual Studio Express 2012用于此目的。 我试图创build应用程序,将从特定的列(但没有指定的数量在该列中的条目)从xml电子表格2003中导入数据,它将列出每个单元格(所有这些列中的文本)的文本。 我已经读了几个关于它的话题,像这样: http : //social.msdn.microsoft.com/Forums/windowsapps/en-US/4fce4765-2d05-4a2b-8d0a-6219e87f3307/reading-excel-file-using- C罗在-的WinRT平台?论坛= winappswithcsharp

但大多数答案都与Visual Studio 2012相关,而不是快速版本,因此我受限于库和扩展。 当我尝试使用这些解决scheme时,大多数这些解决scheme都不适用于我的VS Express 2012,因为他们错过了一些东西。

这个程序正在为我工​​作,并正在返回一个特定单元格的值。 我怎样才能改变它,所以它会读取该列中的每个单元格,将每个值分配给一个表格(或者可能是variables),以便我可以处理这个内容,并可能随机sorting?

 命名空间UnitTest
 {
    公共类TestCode
     {
         // ReadExcelCellTest
        公共静态无效的主要()
         {
             XDocument document = XDocument.Load(@“C:\ Projekt2 \ File1.xml”);
             XNamespace workbookNameSpace = @“urn:schemas-microsoft-com:office:spreadsheet”; 

// Get worksheet var query = from w in document.Elements(workbookNameSpace + "Workbook").Elements(workbookNameSpace + "Worksheet") where w.Attribute(workbookNameSpace + "Name").Value.Equals("Sheet1") select w; List<XElement> foundWoksheets = query.ToList<XElement>(); if (foundWoksheets.Count() <= 0) { throw new ApplicationException("Worksheet Settings could not be found"); } XElement worksheet = query.ToList<XElement>()[0]; // Get the row for "Seat" query = from d in worksheet.Elements(workbookNameSpace + "Table").Elements(workbookNameSpace + "Row").Elements(workbookNameSpace + "Cell").Elements(workbookNameSpace + "Data") where d.Value.Equals("StateID") select d; List<XElement> foundData = query.ToList<XElement>(); if (foundData.Count() <= 0) { throw new ApplicationException("Row 'StateID' could not be found"); } XElement row = query.ToList<XElement>()[0].Parent.Parent; // Get value cell of Etl_SPIImportLocation_ImportPath setting XElement cell = row.Elements().ToList<XElement>()[1]; // Get the value "Leon" string cellValue = cell.Elements(workbookNameSpace + "Data").ToList<XElement>()[0].Value; Console.WriteLine(cellValue); } }

}

我相信Visual Studio的任何版本都可以让你使用开源库: http : //closedxml.codeplex.com/

链接到文档: http : //closedxml.codeplex.com/wikipage? title= Finding% 20and%20extracting%20the%20data&referringTitle= Documentation

然后读取Excel单元格值应该更容易。

我怎样才能改变它,所以它会读取该列中的每个单元格,将每个值分配给一个表格(或者可能是variables),以便我可以处理这个内容,并可能随机sorting?

我希望closedxml能帮你实现这个任务。

处理Excel工作表并不像人们所期望的那么容易。 例如:单元格内容通常只是存储在字典中的实际值的引用(这就是您链接的论坛主题中代码中List<Dictionary<string, string>> )。 另外,其他的怪事可能会发生,比如在一行的末尾接收到意外的NULL单元格。

我不知道你想保持你的代码水平有多低。 如果function有可能发展,最好找一些图书馆。 看看微软自己的Open XML SDK: Open XML SDK 2.5 。 这为所有基于XML的办公室格式提供了支持。 有两个缺点:一个是12MB +程序集,另一个是这个还没有我预期的那么高。 但是你会得到一些像行和列的概念。

其他的select是一些非微软的图书馆。 CodePlex和其他开放源码回购站上有很多。 注意select一些活动和更新的东西。 看一下项目的问题部分,你会发现通常有很多。 你可以看到他们是如何处理的。 许多项目只关注Excel,这可能是您需要的,并且比一般的OpenXML解决scheme要小。

你可以得到付费产品。 最后,我结束了使用SmartXLS,因为事实certificate我们公司有一个许可证。