Tag: linq

使用linq – Epplus返回值不为空的单元格

我使用下面的Linq代码来返回我行中最后一个填充的单元格。 但是,我不知道是什么原因(也许一些格式化,或类的东西)与空值的单元格被返回。 例 我的行从B16开始到AG16,论文中的代码应该返回AG16,但这是返回AI16,这个单元格是空白的,没有任何值,公式,什么都没有。 我想用空白值忽略单元格,所以返回AG16。 我正在根据下面的代码,即使它没有价值返回AI16 var lastRowCellValue = worksheet.Cells.Last(c => c.End.Row == 16) 他将检查16行 我已经尝试使用下面的代码,但它返回NULL而不是AG16,这是我最后一个值单元格 var lastRowCellValue = worksheet.Cells.Last(c => c.End.Row == 16).Where(c => c.Value != null); 我究竟做错了什么?

如何更新数据库中已经存在的值,如果没有的话插入新的logging?

如果行值已经在数据库中,我创build了一个validation来检查excel文件中的值。 我想创build行动,如果该值已经存在,那么我的logging更新,如果不存在databese然后插入为新logging。 这里完整的代码。 [ValidateAntiForgeryToken] public ActionResult ImportDataAgens(HttpPostedFileBase excelfileRekn) { if (excelfileRekn == null || excelfileRekn.ContentLength == 0) { ViewBag.Error = "Please Select File…"; return View("ImportDataAgens"); } else { if (excelfileRekn.FileName.EndsWith("xls") || excelfileRekn.FileName.EndsWith("xlsx")) { string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff"); string filename = Path.GetFileName(excelfileRekn.FileName); string DocFileNames = newFileName + "-" + filename; string path = System.IO.Path.Combine(Server.MapPath("~/UploadFile/DataAgen/"), DocFileNames); if […]

用EPPlus计算列中的单元格

我在C#应用程序中使用EPPlus来读取Excel(.xlsx)文件。 我需要做的是统计列中包含Value单元格数量。 为此,我定义了以下查询: var query = (from worksheet.Cells["i:i"] where cell.Value.ToString().Equals("Value") select worksheet.Cells); Howwever这似乎不工作。 我很确定select语句是错误的,但我不知道它应该是什么样子。

使用dynamicLinq和EPPlus导出到Excel?

作为一个概述,我试图将Export()function添加到我的应用程序 – 允许用户指定某些模型字段,并只通过查询LINQ并使用EPPlus库导出这些字段中的值。 我试图在我的MVC5 / EF代码优先应用程序基于这个例子实现dynamicLINQfunction,但没有多less运气。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using InventoryTracker.DAL; using OfficeOpenXml; using InventoryTracker.Models; using System.Linq.Dynamic; namespace InventoryTracker.Controllers { public class ExportController : Controller { InventoryTrackerContext _db = new InventoryTrackerContext(); public static List<DynamicColumns> DynamicColumnsCollection = new List<DynamicColumns>(); [HttpPost] public ActionResult ExportUsingEPPlus(ExportAssetsViewModel […]

“至less有一个对象必须从LINQ查询结果中实现IComparable”exception

我没有非常广泛地使用LINQ,但我试图从一个大的Excel电子表格(14K +行)读取数据,这需要我从多个工作表进行查询,甚至重新查询原始电子表格以过滤特定的数据。 由于Excel的OleDb查询可能需要相对较长的时间(本地计算机上每个查询文件的查询次数为500 + ms),因此我在方法前面执行了一些查询,通过“基本” DataTable,然后尝试使用LINQ来过滤该循环内的数据,以将相应的数据放入更加结构化的DataSet中。 这里有一些代码来帮助解释(VB.NET): Dim Connection As System.Data.OleDb.OleDbConnection Dim Command As System.Data.OleDb.OleDbDataAdapter Dim EXCEL_SHEET_DATA_1 As New DataTable Dim EXCEL_SHEET_DATA_2 As New DataTable Dim EXCEL_SHEET_DATA_3 As New DataTable Dim TapeFile As New FileInfo("C:\TempFolder\tapefile.xls") Connection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" & TapeFile.FullName & "'; Extended Properties=Excel 8.0;") Command = New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [SHEET1$] […]

打开时更新现有的Excel文件

我读了很多关于如何从C#到Excel的沟通,看到了一些很好的参考。 事情是我正在寻找一种简单的方法来更新现有的Excel文件,而它仍然是开放的,使用最先进的方式(例如linq)而不是OLEDB。 这应该是几行代码描述如何读取当前单元格,更新他的价值,并考虑到文件可能不存在,但如果它确实存在和打开,它只会更新文件,而不通知文件是已经存在。 如果该文件不存在,则会创build一个新文件。 SO:1.连接到一个excel文件,检查是否存在,如果没有创build一个 2.从单元格中读取 3.更新单元格 4.这样做,而excel表可以仍然开放野生。 我已经去过以下地方了: http://social.msdn.microsoft.com/Forums/vstudio/en-US/ef11a193-54f3-407b-9374-9f5770fd9fd7/writing-to-excel-using-c 以编程方式更新Excel文档 使用oledb更新excel文件的特定单元格 我使用了下面的代码: if (File.Exists(@"C:\\temp\\test.xls")) { Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbooks workBooks = excelApp.Workbooks; Microsoft.Office.Interop.Excel.Workbook workBook = workBooks.Open(@"C:\\temp\\test.xls"); Microsoft.Office.Interop.Excel.Worksheet workSheet = workBook.Worksheets.get_Item(1); int nColumns = workSheet.UsedRange.Columns.Count; int nRows = workSheet.UsedRange.Rows.Count; for (int i = 2; i < nRows; i++) { workSheet.Columns["1","A"] = "test"; } […]

内部报告需要复杂的小计

我需要一个通过MemberName ( PersonID )返回小计的查询,但爆发到2个不同的ContactType ( IsFaceToFace下的11&12 )。 下面的查询得到我需要的基础数据,没有任何小计。 我试着用WITH ROLLUP和PARTITION BY搞乱,但那些对我来说是新的,从来没有完全正确的工作。 我相信我需要提供更多关于表格结构的信息,但也许不是。 另外,我的最终目标是在Excel 2007中为我们内部的财务团队提供这个,所以我对任何解决scheme都非常开放。 无论是SQL,LINQ( 虽然这使用2分贝的 ),报表服务,Excelmacros,C#等,我只是需要它在这一点上工作。 我最好的select是什么? 这是目前返回的样本。 ClientFolder MemberName ContactDate TimeSpent IsFaceToFace 68933 Collins,Vickie 2010-01-07 0.2 11 68937 Pervin,Jennifer 2010-01-07 0.2 11 68937 Pervin,Jennifer 2010-01-11 0.1 11 68937 Pervin,Jennifer 2010-01-12 0.1 11 69861 Klum,Ronald 2010-01-04 0.3 11 69861 Klum,Ronald 2010-01-04 0.3 11 69861 […]

使用LINQ从Excel表读取

我正在尝试学习linq,需要帮助转换下面的for循环到linq查询。 在for循环结束时,我应该能够parsingexampleDataList并获取值。 我该怎么做? string filename = Server.MapPath("/") + "MyExcelFileData.xlsx"; const int startRow = 1; IList<double> exampleDataList = new List<double>(); var existingFile = new FileInfo(filename); using (var package = new ExcelPackage(existingFile)) { ExcelWorkbook workBook = package.Workbook; var currentWorksheet = workBook.Worksheets.First(); for (int rowNumber = startRow + 1; rowNumber <= currentWorksheet.Dimension.End.Row; rowNumber++) { var col1Value = Convert.ToDouble(currentWorksheet.Cells[rowNumber, […]

C#使用后期绑定来读取Excel

嗨,我没有使用迟到的绑定之前,但它似乎是解决scheme,只要我能find一个简洁的例子! 或者可能这不是解决scheme,但我相信你们会知道! 我需要从excel中的列中填充一个下拉列表中的combist列表,读到第一个空白单元格。 解决scheme需要与Excel 2003及以上的一些PC一起工作,一些PC从未有过2003安装,其他的从2003年开始升级,有些还在2003年! 我需要一个适用于上述所有方法的解决scheme。 所以我正在寻找晚绑定这是正确的方式去? Linq会帮忙吗? 它是一个使用.Net 4的clasic windows Form应用程序。 我想我会写一个方法,采用文件名和path,并返回一个列表,然后我将分配给combobox。 但是,新的我没有得到通过去! 任何帮助/例子请

如何使用“LINQ组”?

我使用Linq与Excel的多表单的Excel。 如何使用LINQ的组? 样本数据: Name | Rate | Date | Code | ROW_SEQ A | 12 | 01/01/2015 | 12 | 1 B | 13 | 01/01/2015 | 12 | 2 Sub Total | 25 | 01/01/2015 | 12 | C | 10 | 01/01/2015 | 12 | 3 Grand Total | 35 | 01/01/2015 | […]