Tag: epplus

EPPlus数据透视表 – 折叠整个字段

有谁知道如何做到这一点? 我在.Net中使用EPPlus并创建了一个包含2个行字段和一个摘要数据字段的数据透视表: Dim Pivot As OfficeOpenXml.Table.PivotTable.ExcelPivotTable Pivot = wksPivot.PivotTables.Add(wksPivot.Cells(“A1”), Datarange, “pName”) Pivot.RowFields.Add(Pivot.Fields(“Fld1”)).Sort = Table.PivotTable.eSortType.Ascending Pivot.RowFields.Add(Pivot.Fields(“Fld2”)).Sort = Table.PivotTable.eSortType.Ascending Dim dtaFld As OfficeOpenXml.Table.PivotTable.ExcelPivotTableDataField dtaFld = Pivot.DataFields.Add(Pivot.Fields(“XYZ”)) dtaFld.Function = Table.PivotTable.DataFieldFunctions.Sum 一切都很好,但我希望在用户打开工作簿时将数据透视表开始折叠(在Excel中,当您创建数据透视表时,可以右键单击数据元素并选择“展开/折叠” “>”折叠整个字段“ 我可以通过代码来做到这一点吗? (如果EPPlus不支持这个,我愿意使用直接的OpenXML ……) 还有,有没有办法从工作簿中删除原始数据,以便数据透视表仍然有效? 我试过,当我打开工作簿时,我的数据透视表是空白的? – 我现在的逻辑让我想到了这个问题 ……有什么想法? (我知道我在VB中写过这个问题。但我在这个问题上添加了C#和VB标签 – 我对任何一种语言的代码感到满意 – 谢谢!!)

强制EPPLUS作为文本读取

我正在开发一个应用程序来读取xlsx文件,进行一些validation并插入到数据库中。 不幸的是,当我尝试读取标记为数字的列(带有EAN-13代码的fe)时,我得到了一个int的miniumum值。 用户没有看到这个,因为Excel正确显示它。 如何让它以纯文本forms读取文件? 我知道我可以使用OLEBD,但我还需要动态编辑文件,因此epplus ExcelPackage是最佳选择。 这是我使用的代码: FileInfo file = new FileInfo(path); MainExcel = new OfficeOpenXml.ExcelPackage(file); { var ws = MainExcel.Workbook.Worksheets.First(); DataTable tbl = new DataTable(); for (var rowNum = 1; rowNum <= ws.Dimension.End.Row; rowNum++) //currently loading all file { var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column]; var row = tbl.NewRow(); foreach (var cell in […]

在c#中没有网格线的epplus图表(它是一个Web应用程序)

没有GridLines的图我试图使用epplus和c#在excel文件中创建一个图表。 我能够创建图形,我试图删除图形中的网格线,如图所示。 我找到了在Windows应用程序中执行此操作的解决方案,但我想在Web应用程序中执行此操作,下面是我用于生成图形的代码。 ExcelRange erLossesRangeMacInv = worksheet.Cells[“G5:G10”]; var chartOEE=(ExcelBarChart)worksheetGraph.Drawings.AddChart(“barChartOEE”, eChartType.ColumnClustered); chartOEE.SetSize(300, 300);//Setting size of graph chartOEE.SetPosition(10, 10); // position of graph in excel chartOEE.Title.Text = “OEE”; ExcelRange erLossesRangeOEE = worksheet.Cells[“M5:M10”]; chartOEE.Style = eChartStyle.Style10; chartOEE.Legend.Remove(); chartOEE.DataLabel.ShowValue = true; chartOEE.YAxis.MaxValue = 100; chartOEE.Series.Add(erLossesRangeOEE, erLossesRangeMacInv); 我找到了在Windows窗体中工作的代码。 chartOEE.ChartAreas[“ChartArea1”].AxisX.MajorGrid.Enabled = false; 如何使用epplus和c#在“Web应用程序”中执行此操作。

使用EPPLUS缓慢加载.CSV文件

我有大量的.csv文件,我需要在应用一些格式后转换为.xslx。 包含大约20 000行和7列的文件需要12分钟才能转换。 如果文件包含超过100 000,则运行时间超过1小时。 遗憾的是,这对我来说是不可接受的。 代码段: var format = new ExcelTextFormat(); format.Delimiter = ‘;’; format.Encoding = new UTF7Encoding(); format.Culture = new CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.ToString()); format.Culture.DateTimeFormat.ShortDatePattern = “dd.mm.yyyy”; using (ExcelPackage package = new ExcelPackage(new FileInfo(file.Name))){ ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(Path.GetFileNameWithoutExtension(file.Name)); worksheet.Cells[“A1”].LoadFromText(new FileInfo(file.FullName), format); } 我已经validation它是使用LoadFromText命令花费的时间。 有没有办法加快速度? 我试过没有“format”参数,但加载时间是一样的。 您遇到了什么加载时间?

导出到Excel – LINQ – 在.ToList()中包含ForeignKey值?

我试图通过EPPlus库将Excel导出function添加到我的MVC5 / Code-First Entity Framework应用程序。 在我的导出View我已经使用每个INV_Assets模型属性填充了MultiSelectList 。 然后将它们传递到我的ExportController以指定要导出模型的哪些字段。 我已经获得了Headers(通过MultiSelectList )加载到Excel的Row1和来自我的INV_Assets模型的数据,以通过EPPlus LoadFromCollection()导出到excel,如下所示(示例): 代码 : [HttpPost] public ActionResult ExportUsingEPPlus(ExportAssetsViewModel model) { ExcelPackage package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add(“TestExport”); var exportFields = new List(); foreach (var selectedField in model.SelectedFields) { // Adds selected fields to [exportFields] List exportFields.Add(model.ListOfExportFields.First(s => s.Key == selectedField).Value); } { ws.Cells[1, i […]

Microsoft.Office.Interop.Excel或EPPlus用于读取大量(或不是)Excel文件

我写了一个代码来从Excel文件中读取一列。 我在这上面使用Microsoft.Office.Interop.Excel,首先读取整个Range,然后在System.Array中写入,然后我用System.Array值做一些操作,最后我将它转换为List,因为我填充了ListBox元素。 这是代码(仅相关部分): private List bd = new List(); private static System.Array objRowAValues; private List bl = new List(); private static System.Array objRowBValues; private List cm = new List(); private static System.Array objRowCValues; private List pl = new List(); private List bdCleanList; private static Microsoft.Office.Interop.Excel.Application appExcel; Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range rngARowLast, rngBRowLast, […]

将包含所有条件格式设置规则的excel文件导入到epplus

我有一个excel文件,其中包含大量数据以及基于单元格中的值的图标集和数据栏。 它看起来像这样: 我想导入此excel表以及条件格式。 这有什么图书馆? 我浏览了这个http://www.sitecorecleveland.com/resources/blogs-posts/easy_excel_interaction_pt6但它只导入数据而不是格式。 如果那是不可能的,那么在epplus中有代码可以在Excel工作表中使用这些图标集。 我可以有箭头,红绿灯等,但不是这些。

通过表达式EPPlus格式化条件

我正在使用带有条件格式的EPPlus创建excel。 我使用C#代码进行条件格式化,但它无法正常工作。 请检查我的下面的代码,让我知道我错在哪里: ExcelPackage pck = new ExcelPackage(); var ws = pck.Workbook.Worksheets.Add(“Sample1”); var _formatRangeAddress = new ExcelAddress(“H16:K31,H33:K44,H46:K57,H59:K69,H71:K73”); string _statement = “=AND(COUNTA(H16:H16)0)”; var _cond4 = ws.ConditionalFormatting.AddExpression(_formatRangeAddress); _cond4.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; _cond4.Style.Fill.BackgroundColor.Color = Color.Green; _cond4.Formula = _statement; pck.SaveAs(Response.OutputStream); Response.ContentType = “application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”; Response.AddHeader(“content-disposition”, “attachment; filename=Sample1.xlsx”);

将XLSM转换为XLSX

我正在使用EPPLUS库从Excel读取数据以创建另一个文件。 不幸的是,它不支持.XLSM扩展文件。 有没有一种很好的方法将.XLSM文件转换为.XLSX文件,以便用EPPLUS读取文件? (使用EPPLUS进行阅读会很好,因为我的所有代码都是用它编写的:))

使用EPPLus获取合并的细胞区域

我正在使用EPPlus来读取excel文件。 我有一个单元格是合并单元格的一部分。 如何获得此单元格所属的合并范围? 例如: 假设范围(“A1:C1”)已合并。 给定范围“B1”它的Merge属性将为true但是没有办法在给定单个单元格的情况下获得合并范围。 你如何获得合并范围? 我希望有一个.MergedRange可以返回Range(“A1:C1”)