Tag: linq to excel

Linq:有什么具体的方法来运行查询?

我想知道是否我有一个Excel文件,我试图通过LINQ查询获取数据,这将是可行的? Excel文件格式 +—————–+————-+ | Inputlocation | Inputvalue | +—————–+————-+ | 1 | Hello | +—————–+————-+ | 2 | World!!! | +—————–+————-+ 现在,如果我使用下面给出的Linq查询,可能会得到Inputvalue数据 var fileName = @"C:\Users\jshah\Documents\Visual Studio 2013\Projects\QA_ExpScript\QA_ExpScript\Excel\Inputdata.xls"; string sheetName = "Input"; var book = new LinqToExcel.ExcelQueryFactory(fileName); var users = from x in book.Worksheet(Input) select x; foreach (var x in users) { Console.WriteLine(x["1"]); } 我想在这里做的是inputlocation是“1”给我inputvalue是“你好”。 […]

在parsing(转换/映射)之前,过滤LinqToExcel中的空白行

我正在使用LinqToExcel将Excel行映射到C#/ .NET项目中的对象。 我将validation代码放在我的转换函数中,这样它们不仅可以转换数据,还可以在缺less某些数据时警告用户。 例: excel.AddTransformation<PaymentObject>(x => x.PaymentPeriod, cellvalue => { if (cellvalue.Length == 0) { throw new Exception(String.Format(Errors.EmptyField, ColumnNames.PaymentPeriod, ColumnNames.EmployeeNumber, lastCheckedEmployeeNumber)); } return CultureInfo.InvariantCulture.TextInfo.ToTitleCase(cellvalue); }); 但是,我不希望这个validation是由Excel有时在底部添加的空行触发的(请参阅LinqToExcel空白行 )。 我的问题是,我不能使用在那里提到的解决scheme,因为我不能访问原始行数据时调用类似的东西 excel.Worksheet<SomeType>("WorksheetName").Where(row => row.Any(cell => cell != null)); 这是因为首先应用转换,并将Where-method应用于转换结果。 另外 – 在转换函数中我没有访问行中的其他值,所以我不能检查它是一个单一的空单元格(错误)或行是完全空的。 是否有可能在应用转换之前过滤出空行?

Linq to Excel忽略标题行和使用子标题

我正在看Linq to Excel的教程,他们都看起来非常简单,直截了当的excpet他们都假设所使用的Excel表中所有列标题整齐地放置在第1行,并从A列开始。 我需要从excel文件中查询数据,其中表格不仅围绕第6行开始(有些可能从较低行开始),并且具有标题和子标题(标题代表特定地点/公司;子标题代表该位置的列值,如id,stock剩余,销售等)。 有什么办法可以为查询指定哪一行包含我想要使用的标题,所以它只需要从它们下面的信息?

input值到特定位置的Excel工作表通过linq excel在c#

我的Excel表格如下: Id Name Status 1 XYZ 2 ABC 3 BB 1 Yz 我想要做的是写我的C#应用​​程序中的状态列,其中Id是1。 我想通过Linq到Excel来做到这一点。 但是在这方面我没有得到任何积极的东西。 任何人都可以正确引导我。 谢谢。

考虑到LINQ to Excel的问题

我正在读取来自XLS文档的数据,并使用了极好的LINQ to Excel库。 我遇到的问题更多的是与处理LINQ的问题。 我从Excel工作表中读取新的和更新的事件。 所以我想检查事件是否已经存在于数据库中,如果是这样,我想把它与事件挂钩,然后用我读过的所有新数据更新它。 一些代码: var excel = new ExcelQueryFactory("filepath"); var getincident = from jj in excel.Worksheet<Incident>("Sheet1") select jj; foreach (var incident in getincident) { if (incident.CallId.Trim() == "") break; if (exists(incident.CallId, context)) { incident.id = (from b in context.Incidents where b.CallId == incident.CallId select b.id ).First(); context.Incidents.Attach(incident, true); } else { context.Incidents.InsertOnSubmit(incident); […]

LinqToExcel只在打开文件时才起作用

我正在使用C#LinqToExcel将数据从电子表格上传到数据库。 我注意到当文件打开时,它能够从电子表格中检索数据。 但是,如果它没有打开我的机器上,我得到这个错误: base {System.Data.Common.DbException} = {"External table is not in the expected format."} Errors = {System.Data.OleDb.OleDbErrorCollection} 这是当我试图扩大结果观点。 这是我的C#代码: [HttpPost] public void CreateUsersBulk(ModelBulkUpload model, HttpPostedFileBase file) { if (file != null && file.ContentLength > 0) // Pass to Data Layer if true { DataLayer.ExcelParser ex = new DataLayer.ExcelParser(); ex.BulkUploadChoice(model.Type.ToString().Trim().ToLower(), file); } } public void BulkUploadChoice(string […]

用LinqToExcel导入数据 – 只读属性

我试图使用LinqToExcel从Excel中导入数据。 我在模型类中只有很less的只读属性。 当我尝试将它们映射到excel列时,它们会失败,并显示以下错误。 另外,当我从Excel中删除这些列,它没有价值的工作正常。 找不到方法“总计”。 型号:预算 [Required] [Display(Name = "Room Type")] public int RoomTypeID { get; set; } [ForeignKey("RoomTypeID")] public virtual RoomType RoomType { get; set; } public decimal Pair { get; set; } [ExcelColumn("Cost per Room*")] public decimal CostPerRoom { get; set; } [NotMapped] [ExcelColumn("Total")] [Display(Name = "Total")] public decimal Total { get { […]

当一个条件满足使用LinqToExcel获取列数据

我正在使用LinqToExcel从Excel文件中获取一些数据,它对普通任务来说工作得很好,但是当列扩展到多行时会出现问题。 这是常见的任务,得到一个数据行。 但是,当同一条logging中的某个列扩展到多行时,我无法获得包含所有这些行的单个数据行,而是从“from”和“to”列中获得了几行包含空数据的行。 这是我目前使用的代码: var book = new ExcelQueryFactory(pathFile); var result = (from row in book.Worksheet("Sheet1") let item = new packages { from = row["From"].Cast<string>(), to = row["to"].Cast<string>(), items = new List<packages.items>() { new items() { items = row["items"].Cast<string>() } } } select item).ToList(); 所以我的问题是,我怎样才能得到一个单一的行,包括,考虑到上面的例子,从“到”和“从”列的string,从“我的洞”的“项目”列等等列表表?

LinqtoExcel:无法使用where子句来select行数据

我正在使用linqtoexcel作为我的自动化项目。 这个文件包含不同的网站的URL和它的credentails。 如果我只使用一行,我可以login到该网站。 但是如果有两行,那么我在使用where子句时遇到了问题。 请帮助,如果你不明白任何东西,请问问题。 我的Excel表单 以下是我的代码。 string pathfile = @"..\..\Data.xlsx"; string sheetName = "Login"; var excelFile = new ExcelQueryFactory(pathfile); var abc = from a in excelFile.Worksheet(sheetName).AsEnumerable() where Row.Field<String>("ID").Trim() == "2" select a; PropertiesCollection.driver.Manage().Window.Maximize(); foreach (var a in abc) { PropertiesCollection.driver.Navigate().GoToUrl(a["URL"]); } foreach (var a in abc) { objLogin.Login(a["uname"], a["paswd"]); } 我知道我错了,根据我的代码。 另外我知道,我在Field<String>有一个错误 请指导linqtoexcel中where子句的更好的使用方法。

用linq-读取Excel工作表,跳过重复的ID

在下面的excel文件中,我需要读取作为Student类的行,这些类定义唯一ID的单个对象,然后获取与此学生关联的所有考试。 如果我使用下面的代码,我生成的学生数量等于行数,并且没有为每个对象学生指定考试列表。 IQueryable<Student> Students_var; var excel = new ExcelQueryFactory(fileName_global1); excel.AddMapping<Student>(x => x.ID, "STU_NO"); Students_var = from c in excel.Worksheet<Student>("Stu_Schedule") select c; List<Student> StudentList_c = Students_var.ToList();