Tag: epplus 4

Epplus导出错误是这样的:'System.Data.DataSet'对象types'System.Data.DataTable'不是实物。

我想转换一个GridView到.xls,但它会抛出错误,当我点击确定它给我“无法导出到Excel。原始错误:'System.Data.DataSet'对象types'System.Data.DataTable'没有采取善良。“这是我的代码; 我的searchbutton groupBox2.Visible = true; SqlConnection baglanti = new SqlConnection("Data Source=.; Initial Catalog=database; Trusted_Connection=yes; MultipleActiveResultSets=True"); SqlDataAdapter da = new SqlDataAdapter(); SqlCommand cmd = new SqlCommand(); DataSet ds = new DataSet(); baglanti.Open(); cmd.CommandText = "SELECT * FROM hostes_tablo WHERE ayak_no=" + comboBox7.Text + ""; da.SelectCommand = cmd; cmd.Connection = baglanti; da.Fill(ds, "hostes_tablo"); dataGridView1.DataSource = ds; dataGridView1.DataMember […]

如何预先select要包含在数据透视表中的字段?

我有这个EPPlus代码来创build数据透视表: private void AddPivotTable() { string colAlphaRowNum = string.Format("A{0}", locationWorksheet.Dimension.End.Row+5); ExcelAddressBase eab = locationWorksheet.Cells[colAlphaRowNum]; ExcelRangeBase erb = locationWorksheet.Cells[6, 1, locationWorksheet.Dimension.End.Row, locationWorksheet.Dimension.End.Column]; var pt = locationWorksheet.PivotTables.Add(eab, erb, "Pivotous"); pt.MultipleFieldFilters = true; pt.RowGrandTotals = true; pt.ColumGrandTotals = true; pt.Compact = true; pt.CompactData = true; pt.GridDropZones = false; pt.Outline = false; pt.OutlineData = false; pt.ShowError = true; pt.ErrorCaption […]

我怎样才能得到“总计”的平均值而不是总和?

我得到(免费)在我的数据透视表中的“总计”列: 对于“TotalQty”和“TotalPrice”这是很好的,但对于“AvgPrice”和“PrcntgOfTotal”不是那么多。 我怎样才能得到这些vals在第一种情况下,而不是一个平均值? 月份百分比是该月总和的百分比(不是所有月份的总和); 所以GrandTotal.PrcntgOfTotal也不应该是每月价值的平均值。 下面是我生成这个数据透视表的代码: private void PopulatePivotTableSheet() { string NORTHWEST_CORNER_OF_PIVOT_TABLE = "A6"; AddPrePivotTableDataToPivotTableSheet(); var dataRange = rawDataWorksheet.Cells[rawDataWorksheet.Dimension.Address]; dataRange.AutoFitColumns(); var pivotTable = pivotTableWorksheet.PivotTables.Add( pivotTableWorksheet.Cells[NORTHWEST_CORNER_OF_PIVOT_TABLE], dataRange, "PivotTable"); pivotTable.MultipleFieldFilters = true; //pivotTable.RowGrandTotals = true; <= default setting //pivotTable.ColumGrandTotals = true; <= default setting //pivotTable.RowGrandTotals = false; // this prevents the "Grand Total" column //pivotTable.ColumGrandTotals = false; […]

使用EPPlus更改订单yAxys

我正在做一个epplus的excel,需要在垂直条中生成两个graphics,如下图所示: 如您所见,在Y轴上,标签出现无序,从P6开始到P1结束。 我想得到相反的效果。 从P1开始,在P6结束 有什么财产可以改变订单吗? 还是应该用某种sortingalgorithm来sorting呢? 这是与生成图表有关的function public void dibujarGrafica6Periodos(ExcelWorksheet ws, CultureInfo idioma) { CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture; TextInfo textinfo = cultureInfo.TextInfo; var chart = ws.Drawings.AddChart("barChart2", OfficeOpenXml.Drawing.Chart.eChartType.BarClustered); chart.SetPosition(34, 0, 10, 10); chart.SetSize(940, 20*14); var serie1 = chart.Series.Add(ws.Cells["E36:E41"], ws.Cells["A36:A41"]); var serie2 =chart.Series.Add(ws.Cells["C36:C41"], ws.Cells["A36:A41"]); chart.Title.Text = "Consumo por Periodos – " + textinfo.ToUpper(DateTime.Now.ToString("MMMM", idioma)); chart.Title.Font.Color = System.Drawing.ColorTranslator.FromHtml("#4F81BD"); […]

加载大于40MB的stream时EPPLus错误

我在C#MVC上使用EPPlus将excel文件加载到内存中。 我正在从一个file uploadstream: model.File.InputStream 并将其传递给ExcelPackage.Load()方法。 它适用于<40 MB的文件。 但对于较大的文件,我得到的错误: 在EPPlus.dll中发生types“System.Runtime.InteropServices.COMException”的exception,但未在用户代码中处理 附加信息:写入操作期间发生磁盘错误。 (从HRESULTexception:0x8003001D(STG_E_WRITEFAULT))

使用EPPlus对Excel范围进行Excel时间validation

我想要使​​用EPPlus在Excel中validation列的时间范围,如下午1:00到11:00。 时间必须是“hh:mm AM / PM”格式。 我解决了这个问题。 这里是代码: var validationEndTime = workSheet.DataValidations.AddTimeValidation("H:H"); validationEndTime.ShowInputMessage = true; validationEndTime.Prompt = "Add end time in hh:mm AM/PM format as example 9:00 AM or 12:30 PM"; validationEndTime.ErrorStyle = ExcelDataValidationWarningStyle.stop; validationEndTime.ShowErrorMessage = true; validationEndTime.Error = "Insert valid time"; validationStartDate.Operator = ExcelDataValidationOperator.between; var timeEnd = validationStartDate.Formula.Value; timeEnd.Hour = 00; timeEnd.Minute = 00; var […]

EPPlus超链接到另一个工作表中的单元格

我努力将超链接添加到我生成的Excel文件的另一个列表。 我试过这样的: ws.Cells[1, 1].Formula="HYPERLINK(\"[#]'sheetName'!R4C1\";\"linktext\")" ws.Cells[1, 1].Formula="HYPERLINK(\"#'sheetName'!R4C1\";\"linktext\")" ws.Cells[1, 1].FormulaR1C1="HYPERLINK(\"[#]'sheetName'!R4C1\";\"linktext\")" ws.Cells[1, 1].FormulaR1C1="HYPERLINK(\"#'sheetName'!R4C1\";\"linktext\")" 在excel 365(完全脱机应用程序)中打开生成的excel文件后,我只是得到消息,文件中有错误,所有使用这个超链接公式的单元格都是空的。 错误消息是: we found a problem with some content in FILENAME do you want us to try to recover as much as we can 如何使其工作? 另外当我把相同的公式手动它工作。 完整的代码: using OfficeOpenXml; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExcelHyperlinkTest { […]

“索引超出了数组的范围”exceptionC#

我试图保存Excel工作簿,但是,我收到exception“索引超出数组的界限”。 这是代码: public static void Update() { FileInfo newFile = new FileInfo(@"C:\Users\"); using (ExcelPackage p = new ExcelPackage(newFile)) { ExcelWorkbook work = p.Workbook; ExcelNamedRange sourceRange = work.Names["NewTakt"]; ExcelNamedRange destinationRange = work.Names["PreviousTakt"]; ExcelWorksheet worksheet = sourceRange.Worksheet; int iRowCount = sourceRange.End.Row – sourceRange.Start.Row + 1; int iColCount = sourceRange.End.Column – sourceRange.Start.Column +1; for (int iRow = 0; […]

EPPLus细胞配方#REF

希望有人能用EPPLUS和Formulas来解决这个问题。 我得到一个无效的#REF! 当我尝试给一个单元格分配一个公式时,最后一行似乎没有问题地接受这个公式,并且计算正确。 这是逻辑公式分配时的逻辑。 我正在引用另一张表中的数据。 string formula1 = ""; string formula2 = ""; int uniqueTimeRow = 14; if (uniqueTimes.Rows.Count != 0) { foreach (DataRow row in uniqueTimes.Rows) { if (row["ExecutionTime"].ToString() != "") { wsSummary.InsertRow(uniqueTimeRow, 1, uniqueTimeRow); wsSummary.SetValue(uniqueTimeRow, 2, row["ExecutionTime"].ToString()); formula1 = "SUMIF(DataSummary[Strategy],$B" + uniqueTimeRow.ToString() + ",DataSummary[ExecQty])"; formula2 = "SUMIF(DataSummary[Strategy],$B" + uniqueTimeRow.ToString() + ",DataSummary[PrincipalAmount])"; wsSummary.Cells[uniqueTimeRow, 3].Formula […]

EPPlus – 如何在透视图中添加“系列行”(ColumnStacked)

我正在使用EPPlus库在Excel中生成数据透视表。 我创build了图表,但不知道如何添加“系列行”。 下图中的箭头表示系列线。 图表 – 系列行 这里是示例代码。 var wsBar = pck.Workbook.Worksheets.Add("Bar"); –dataRange = Data from "Data" worksheet. var pivotTable1 = wsBar.PivotTables.Add(wsBar.Cells["Z100"], dataRange, "pivotTable1"); var dataFieldBar1 = pivotTable1.DataFields.Add(pivotTable1.Fields[22]); dataFieldBar1.Format = "$ #,###.00"; pivotTable1.DataOnRows = true; pivotTable1.RowFields.Add(pivotTable1.Fields[15]); pivotTable1.ColumnFields.Add(pivotTable1.Fields[12]); pivotTable1.PageFields.Add(pivotTable1.Fields[7]); var columnchart = wsBar.Drawings.AddChart("ColumnChart", eChartType.ColumnStacked, pivotTable1); columnchart.SetPosition(0, 0, 0, 0); columnchart.SetSize(600, 300); 任何帮助,高度赞赏。