我正在使用麻省理工学院开发的LinqToExcel项目,并在http://code.google.com/p/linqtoexcel/wiki/UsingLinqToExcel上托管在Google Code上.
它似乎非常直接和优雅.我能够重写一个使用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;
Run Code Online (Sandbox Code Playgroud)
线 - 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;
Run Code Online (Sandbox Code Playgroud)