我正在尝试使用LinqToExcel库从Excel工作表中提取不同的值。
我一直收到错误
查询表达式'(MOD)'中的“{”语法错误(缺少运算符)。“}”
我已尝试过所有内容,似乎无法从此列中提取不同的值。
非常感谢任何协助。
先谢谢,
代码如下。
public class WorksheetRow
{
public String CPT { get; set; }
public String MOD { get; set; }
public String DESCRIPTION { get; set; }
public double FEE { get; set; }
}
public class FileUtilsController : Controller
{
//
// GET: /FileUtils/
public ActionResult Index()
{
return View();
}
public ActionResult FileUpload()
{
return View();
}
// This action handles the form POST and the upload
[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase file)
{
// Verify that the user selected a file
if (file != null && file.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(file.FileName);
// store the file inside ~/App_Data/uploads folder
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
var excel = new ExcelQueryFactory(path);
List<String> worksheetNames = excel.GetWorksheetNames().ToList();
String FirstWorksheet = worksheetNames[0];
//Query Column Names
//The GetColumnNames() method can be used to retrieve the list of column names in a worksheet.
IEnumerable<String> ProcCodeModifiers = (from row in excel.Worksheet<WorksheetRow>(FirstWorksheet)
where row.MOD != null
select row.MOD).Distinct();
ViewData["Modifiers"] = "";
foreach (String item in ProcCodeModifiers)
{
ViewData["Modifiers"] += item + ", ";
}
// redirect back to the index action to show the form once again
// return RedirectToAction("Index", "Home");
}
return View();
}
答案 0 :(得分:0)
我将不得不对此错误发生的原因进行更多研究,但一个快速的解决方法是在执行Distinct()操作之前将查询转换为列表。
这是一个代码示例
IEnumerable<String> ProcCodeModifiers = (from row in excel.Worksheet<WorksheetRow>(FirstWorksheet)
where row.MOD != null
select row.MOD).ToList().Distinct();