我正在使用由MIT开发并托管在http://code.google.com/p/linqtoexcel/wiki/UsingLinqToExcel的Google Code上的LinqToExcel项目。

看起来挺直而优雅的。我能够重写使用MS excel互操作库的方法,并且代码的大小约为1/3。

但是,我在尝试查询一系列单元格时遇到了一个问题。 VS2008将其视为语法错误:

   //These lines are fine
   IEnumerable<string> names = new List<string>();
   var excel = new Excel.ExcelQueryFactory(_excelFilePath);

   //This line shows a syntax error starting from c[0]
    names = from c in excel.WorksheetRange("A1", "AI1", headerName)
                c[0] == "IN"
                select c;


这行-c [0] ==“ IN”-看起来很奇怪。这应该获取单元格A1中的值。如果删除“ c [0] == IN”,语法错误就会消失,但不会返回任何结果。

这个语法正确吗?链接页面上的代码是C#吗?



更新:在得到一些答案之后,似乎缺少的“哪里”确实是一个错字。但是,即使有了“ where”,我也无法得到c [4] ==“ IN”返回单元格A5。我可以通过删除整个where子句来完成所需的工作,该子句返回了我指定的整个范围。在最初的帖子中,我只是想返回一个单一的价值-宝贝的步骤:)

为了标记答案-如何只返回范围内的一个单元格?也许== "IN"是某种错字,而不是LinqToExcel的实际构造?

谢谢你的帮助!

最佳答案

应该是:

var names = from c in excel.WorksheetRange("A1", "AI1", headerName)
            where c[0] == "IN"
            select c;

关于c# - LinqToExcel语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3718847/

10-11 13:28