在MVC5/EF应用程序中实现动态LINQ查询?
作为概述,我正在尝试向我的应用程序添加Export()功能 - 允许用户指定某些模型字段,并且仅通过与Linq查询并使用 epplus 库将导出.我正在尝试基于 this 示例,但似乎缺少一些使它起作用或不了解某些东西的东西. 首先,我在称为DynamicLibrary.cs的主项目文件夹中添加了一个新的类文件.当我下载.zip 在这里,我"相信"代码i想要的是我在项目中复制到DynamicLibrary.cs的文件代码.这样做使我可以在项目中引用using System.Linq.Dynamic 现在,我坚持不懈地试图弄清楚如何为动态LINQ设置其余部分. 在我的ExportController ExportController中 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System
18 2024-04-26
编程技术问答社区
在C#.net中使用EPPLus根据文本设置单元格的条件背景色
我正在使用Epplus导出到Excel. 我想根据第1列值设置第1列和第2列的背景颜色.如果第2列中的任何单元包含1个,则Col1和Col2的背景颜色为绿色.如果包含2,则背景颜色必须是浅黄色.如下图. 现在我只能设置第二列背景颜色.如果我设置了范围,则根据最后一个条件设置背景颜色,并将整列颜色为黄色.请帮助我. 解决方案 选择Col1和Col2中的所有数据.转到条件格式菜单,然后单击管理规则.选择列表中的最后一个选项(使用公式来确定...)并使用此公式: = if( $ [col2] [row1ofdata] = 1,true,false).然后按照您的意愿格式.将规则应用于col1和col2. 尽管将规则应用于COL1,但美元符号将告诉它在范围内的任何行中使用规则. . 然后,您将必须对要使用的每个颜色代码重复此操作(即一次将其颜色为绿色,然后再彩色2作为琥珀色). 其他解决方案 我找到了自己的解决方案.以下是Excel输出 . int T
16 2024-04-26
编程技术问答社区
如何从ZipArchiveEntry EPPlus中获取xls文件?
我试图从ziparchive获取XLS文件,但无法使用epplus 获得它 foreach (ZipArchiveEntry entry in archive.Entries) { if (entry != null) { string filepath = entry.FullName; FileInfo fileInfo = new FileInfo(filepath); //here i got the excel package with the xls file inside the excelPackage
20 2024-04-26
编程技术问答社区
从excel文件中替换无效的XML字符并将其写回磁盘,导致在MS Excel中打开时文件被破坏的错误
问题的一些背景: 我们有一个ASP.NET MVC5应用程序,在该应用程序中,我们使用Flexmonster在网格中显示数据.数据源是一个存储的过程,将所有数据带入UI网格中,一旦用户单击导出按钮,它将报告将报告导出到Excel.但是,在某些情况下,导出到Excel的情况正在失败. 某些数据具有一些无效的字符,并且无法按照建议的在这里 > 到目前为止我的方法: epplus库无法初始化工作簿,因为输入Excel文件包含一些无效的XML字符.我可以发现该文件中有一些无效的字符.我研究了可能的方法. 首先,我在Excel文件中确定了有问题的字符.我首先尝试使用记事本++手动用空白空间替换无效的字符,而epplus可以成功读取文件. 现在使用其他so thread 此处和在这里,我替换了无效的chars的所有可能出现.我目前正在使用 xmlconvert.isxmlchar 方法是找出有问题的XML字符并替换为空白. 我创建了一个试图在有问题的Exc
12 2024-04-26
编程技术问答社区
使用EPPlus将可数据化的数据导出到EXCEL,并附加数据
我有一个要求我必须在图像下生成excel 在 我正在使用epplus dll,我只能将DataTable导出至直接以下面的C#代码为Excel. using (var package = new ExcelPackage(Template)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Product_Reports"); worksheet.Cells["A1"].LoadFromDataTable(dt, true, TableStyles.Medium1); worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); ... remainig code 如何添加标题"产品统计信息"和其他数据,例如"
12 2024-04-25
编程技术问答社区
使用EPPlus设置网格线颜色?
是否可以使用? " Gridline Color" 选项我要编程以编程设置的选项显示在下面的屏幕截图中. 解决方案 我在epplus中看不到它的选项.可以使用XML手动设置属性: [TestMethod] public void Sheet_Gridline_Color_Test() { //http://stackoverflow.com/questions/29380587/set-gridline-color-using-epplus //Throw in some data var dtMain = new DataTable("tblData"); dtMain.Columns.Add(new DataColumn("Col1", typeof(int))); for (var i = 0; i
18 2024-04-25
编程技术问答社区
局部加载Excel EPPlus C#
据我了解,Epplus将整个Excel文件加载到正在创建性能命中的内存中. 我想知道是否有一种方法可以将Excel部分加载到Epplus中以阅读一小部分行?我正在使用Epplus版本4.0.4. 例如,我可以打开一个CSV文件,只读取一小范围的行/线和性能是好的. CSV文件可能包含比一百万行/行更多的方法. IEnumerable lines = System.IO.File.ReadLines(filePath).Skip(0).Take(20).ToList(); 解决方案 我认为这是不可能的. CSV文件只是纯文本文件.这意味着您可以寻找并阅读您想要的文件中的任何点. excel文件(.xlsx)实际上只是zip文件,其中包含的数据是描述内容的各种XML文件.因此,由于被压缩,您无法真正部分加载文件. 如果您想查看.xlsx文件中的内容,只需将其上的扩展名更改为.zip,然后使用您喜欢的提取工具来查看内容.
14 2024-04-25
编程技术问答社区
如何使用EPPlus获得Excel文件(xlsx)中以像素表示的形状/图片坐标
是否有人成功地使用epplus? 解决方案 我终于找到了使用内部XML数据的解决方案,Excel似乎正在使用一个单元进行EMU,即equal to 1/9525 pixel.该解决方案低于 public static Rectangle GetDimensions(string shapeName, ExcelWorksheet sheet) { const int EMU = 9525; var shapeBaseNodexPath = string.Format("//*[@name='{0}']", shapeName); //get node that contains name of the shape var shapeNameNode = sheet.Drawings.DrawingXml.SelectSingleNode(shapeBaseNode); if (shapeNameNode == null) throw new Ar
18 2024-04-25
编程技术问答社区
如何用EPPlus读取excel文件中复选框的状态(C#)
标题已经很好地解释了我的问题.我有一个包含复选框的Excel文件,我想使用Epplus库阅读其状态(是否检查). 我不确定是否得到支持.到目前为止,我还没有使用Epplus找到有关该特定问题的文档或示例. 解决方案 如果添加一个单元格链接,则将值直接拉动.我不认为图形对象包含值. using System.Linq; using OfficeOpenXml; using OfficeOpenXml.Drawing; namespace EPPlus { public void Run() { var excelFile = new System.IO.FileInfo(System.IO.Path.Combine(BaseDirectory, "Excel", "Checkbox.xlsx")); using (ExcelPackage excel = new ExcelPackage(excelFile)) { ExcelWorksheet sheet = excel.W
22 2024-04-24
编程技术问答社区
EPPlus在转换csv时漏掉了双击的逗号
我正在尝试使用以下代码将CSV文件转换为XLSX文件: string csvFileName = path; string nomeArquivo = Path.Combine(serverpath, RandomString(10) + ".xlsx"); string worksheetsName = "b2w"; bool firstRowIsHeader = false; var format = new ExcelTextFormat(); format.Delimiter = ';'; format.EOL = "\n"; // DEFAULT IS "\r\n"; // format.TextQualifier = '"'; u
10 2024-04-24
编程技术问答社区
在Epplus工作表中用Linq选择分组的最大和最小值
我有一个看起来像这样的Epplus Excel工作表. 我想按组列(在A列中)进行分组,然后选择最大和最小值.我的group by子句中的某些内容不太正确,我会遇到错误:Cannot apply indexing with [] to ExcelRangeBase. var maxMinGrouped = from cells in _dataSheet.Cells["A:H"] group cells by cells["A:A"].Value into g //pull "Group" column into group select new { Group = cells["A:A"].Value, MaxDailyIndex = g.Max(c => c.
12 2024-04-24
编程技术问答社区
如何使用EPPlus读取有工作簿保护的Excel 2010文件?
当我使用以下代码读取具有密码保护的Excel 2010文件时 using (FileStream file = new FileStream(fileName, FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite)) { ExcelPackage ep = new ExcelPackage(); try { ep = new ExcelPackage(file); } catch (Exception ex) { string strErr = ex.message; } } ...我有一个例外.使用Epplus? 读取具有密码保护的Excel 2010文件的任何示例代码 解决方案 面对相同的问题.在Excel 2010中,加密算法与2007年有所不同.幸运的是Epplus 4.0 beta 2
6 2024-04-23
编程技术问答社区
Epplus读取带有html片段的超链接i
我获得了带有超链接的Excel XLSX文档. 超链接具有地址和子附件(这就是VBA调用html片段的方式,均在#标志之后) epplus库具有每个单元格的超链接属性,但它仅具有HTML地址的第一部分,因此而不是 stackoverflow.com#footer 我得到了: stackoverflow.com 有什么方法可以使用此库读取HTML片段? 通过epplus读取超链接的代码: FileInfo xlsxFile = new FileInfo(_filePath); using (ExcelPackage pck = new ExcelPackage(xlsxFile)) { var wb = pck.Workbook; if (wb == null) return null; var ws
8 2024-04-23
编程技术问答社区
如何使用EPPLUS从Excel电子表格单元格中获取数值?
我正在使用epplus库来创建DataTable的Excel. 这就是我要做的: using (ExcelPackage pck = new ExcelPackage()) { ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo"); ws.Cells["A5:I5"].LoadFromDataTable(dt, true); ws.DefaultColWidth = 25; var headerCell = ws.Cells["A5:I5"]; headerCell.Style.Fill.PatternType = ExcelFillStyle.Solid; headerCell.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.BurlyWood); var headerFont = headerCell.S
10 2024-04-23
编程技术问答社区
清除列中的数据
我正在尝试使用标准.Clear()用于epplus电子表格的方法.有人知道如何使用Epplus插件清除列中的所有数据?下面是我到目前为止的.没有异常,但根本不起作用. if (File.Exists(path)) { //Connect to spreadsheet FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read); FileInfo file = new FileInfo(path); _package = new ExcelPackage(); //Pull data into EPPlus object _package.Load(stream); _sheet = _package.Workbook.Worksheets.First(); //Clear out previous errors _sheet.Ce
8 2024-04-22
编程技术问答社区
Epplus:如何检查所有单元格是否有效?
我正在使用Excel的数据验证列表,检查单元格是否为动态范围(另一列的单元格值). 问题是,如果我在源范围内添加一个值(例如." a"),我可以通过数据验证在单元格上输入该值.但是,如果我更改源(例如,从" 在excel中有一个按钮在无效的数据周围设置一个红色圆圈,但客户端并不总是检查一切是否好. 我可以用epplus执行检查吗? 解决方案 文档不建议可以执行此检查. epplus 创建,阅读,修改,修改,修改,删除数据验证"并链接到数据验证页面,但这仅是关于以编程方式定义数据验证规则 - 而不是单元格的值是否符合数据验证规则. I've searched the source code and looked at exceldatavalidation.cs 及其各种子类型.他们的"验证"方法仅根据Excel的规则正确定义验证. Found the InternalValidationEnabled属性(请参见下文),但我认为它仅是为了检查数据验
10 2024-04-22
编程技术问答社区
EPPlus在绑定后无法计算公式输出
我正在使用epplus.我被困在细胞公式中. 我的代码如下: ExcelPackage pck = new ExcelPackage(@"D:\MYSheets\EmptyFile.xlsx"); var ws = pck.Workbook.Worksheets["MySheet"]; ws.Cells["A3"].Value = "2.3"; ws.Cells["A4"].Value = "10.2"; ws.Cells["A5"].Formula = "=SUM(A3:A4)"; ws.Cells["A5"].Style.Numberformat.Format = "#,##0.00"; pck.Save(); 当我打开Excel时,默认情况下,A5单元格不会计算A3和A4的总和.除非我修改A3和/或A4单元,否则A5单元格仍未计算. 我尝试使用以下代码,但对我不起作用: ws.Workbook.CalcMode = ExcelCalcMode.Aut
20 2024-04-22
编程技术问答社区
用EPPlus创建一个excel文件,但它总是只读的
我正在创建/发送带有epplus的文件: using (ExcelPackage package = new ExcelPackage()) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet"); ... //create file here Response.Clear(); Response.ContentType = "application/xlsx"; Response.AddHeader("content-disposition", "attachment; filename=" + filename + ".xlsx"); Response.BinaryWrite(package.GetAsByteArray()); Response.End(); } 一切正常,除了该文件总是只读,我不知道原因.在"软件包"对象中,有一
12 2024-04-22
编程技术问答社区
用EPPlus复制/克隆一个Excel形状?
是否可以使用Epplus库在Excel工作表中创建形状的副本/克隆? 我知道我可以用 获得现有对象 var shapeExisting = ws.Drawings["ShapeName"]; (ws是工作表对象) 和一个用 创建新形状 var shapeNew = ws.Drawings.AddShape("NewName", eShapeStyle.RtTriangle); 但是,我无法找到克隆shapeExisting的方法. 解决方案 似乎没有内置功能,因此在找到更好的解决方案之前,我将以下方法添加到EPPlus\Drawings\ExcelDrawings.cs 中 public ExcelShape CloneShape(string SourceName, string TargetName) { if ( _drawingNames.ContainsKey(TargetName.ToLower())) {
10 2024-04-22
编程技术问答社区