簡體   English   中英

無法創建數據透視表

[英]Unable to create pivot table

我正在嘗試使用C#創建一個Excel Pivot表。 我正在使用Microsoft.Office.Interop.Excel 盡管其他一切正常,但涉及到該行

Excel.PivotCache pivotCache = (Excel.PivotCache)wkb.PivotCaches()

沒有添加選項來添加數據源,但是大多數在線資源告訴我,有一個添加選項。 如何添加數據源?

編輯:請注意,此處使用的Excel實際上是使用Excel = Microsoft.Office.Interop.Excel;。 問題仍然沒有答案。

您需要使用“添加”來獲取單個pivotcache對象。 這是一個示例:

void Main()
{
    Excel.Application xl = new Excel.Application();
    var wb = xl.Workbooks.Add();
    var pc = wb.PivotCaches().Add(XlPivotTableSourceType.xlExternal);

    pc.Connection = @"OLEDB;Provider=SQLNCLI11.0;server=.\SQLExpress2012;Database=Northwind;Trusted_connection=yes";
    pc.CommandType = XlCmdType.xlCmdSql;
    pc.CommandText = @"Select c.CustomerID, c.CompanyName, 
  o.orderId, o.orderDate, 
  e.FirstName+(' '+e.LastName) As Employee, 
  p.ProductName,
  od.UnitPrice, od.Quantity
  FROM  Customers c 
  INNER Join Orders o
  ON o.CustomerID = c.CustomerID
  INNER Join Employees e 
  ON e.EmployeeID = o.EmployeeID
  INNER Join [Order Details] od
  ON od.OrderID = o.OrderID 
  INNER Join products p 
  ON p.ProductID = od.ProductID
  order By p.ProductName";

  var ws = (Excel.Worksheet)wb.ActiveSheet;
    pc.CreatePivotTable(ws.Range["A1"], "myPivot");
    var pt = (Excel.PivotTable)ws.PivotTables("myPivot");

    pt.AddFields(new string[] {"ProductName"}, new string[] {"Employee"});
    var pvf = (Excel.PivotField)pt.PivotFields("Quantity");
    pvf.Orientation = XlPivotFieldOrientation.xlDataField;
    xl.Visible=true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM