创建透视表c#互操作
我试图用C#互操作从完整的工作表创建透视表,但我遇到了一些错误,不知道是我的代码还是这个示例是旧的 我举这个例子: 但是当我尝试的时候,我找不到一些方法。 这是我的代码:创建透视表c#互操作,c#,excel,pivot-table,interop,C#,Excel,Pivot Table,Interop,我试图用C#互操作从完整的工作表创建透视表,但我遇到了一些错误,不知道是我的代码还是这个示例是旧的 我举这个例子: 但是当我尝试的时候,我找不到一些方法。 这是我的代码: Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application(); Workbooks libro = Excel.Workbooks;
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Workbooks libro = Excel.Workbooks;
Workbook libroActual = libro.Add();
Sheets sheets = libroActual.Worksheets;
//Excel.Workbooks.Add();
// Instanciamos la hora activa
Microsoft.Office.Interop.Excel._Worksheet Worksheet = Excel.ActiveSheet;
Worksheet.Name = "Desglose";
Worksheet sheetMMPP = Excel.Worksheets.Add();
sheetMMPP.Name = "MMPP";// CreateEmptySheet();
Microsoft.Office.Interop.Excel.Range dataRange = Worksheet.UsedRange;
Microsoft.Office.Interop.Excel.PivotCache cache = (Microsoft.Office.Interop.Excel.PivotCache)libroActual.PivotCaches().Add(Microsoft.Office.Interop.Excel.XlPivotTableSourceType.xlDatabase,dataRange);
Microsoft.Office.Interop.Excel.PivotTable pt = (Microsoft.Office.Interop.Excel.PivotTable)sheetMMPP.PivotTables().Add("Pivot Table", Worksheet.Range["A1"], cache);
Microsoft.Office.Interop.Excel.PivotField oPivotField = (Microsoft.Office.Interop.Excel.PivotField)pt.PivotFields("Nivel 0");
oPivotField.Orientation = Microsoft.Office.Interop.Excel.XlPivotFieldOrientation.xlDataField;
oPivotField.Function = Microsoft.Office.Interop.Excel.XlConsolidationFunction.xlSum;
oPivotField.Name = "Nivel 0";
但我得到了这个错误:
无法转换要添加的调用的参数2
错误在这一行:
Microsoft.Office.Interop.Excel.PivotTable pt = (Microsoft.Office.Interop.Excel.PivotTable)sheetMMPP.PivotTables().Add("Pivot Table", Worksheet.Range["A1", "P56"], cache);
有人知道这个错误吗?看起来你把库搞错了。在您的链接中,示例基于Spire.xls库,但在代码中,您使用Interop.Excel和Spire语法。Interop.Excel PivotTables.Add方法具有不同的参数-
Add(Microsoft.Office.Interop.Excel.PivotCache PivotCache,object TableDestination,[object TableName],[object ReadData],[object DefaultVersion])
数据透视表需要针对工作表而不是工作簿。libroActual是一个工作簿。@jdweng感谢您的评论。我编辑了这篇文章。你是不是只想抓取A1和P56单元格?嗨,雅各布,我编辑了这篇文章,但有错误!我之所以问这个问题,是因为您的错误行不在您提供的代码段中。在问题中,您有一行pt=(Microsoft.Office.Interop.Excel.PivotTable)sheetMMPP.PivotTables().Add(“PivotTable”,Worksheet.Range[“A1”],cache);您说错误是pt=(Microsoft.Office.Interop.Excel.PivotTable)sheetMMPP.PivotTables().Add(“数据透视表”,工作表.Range[“A1”,“P56”],缓存);