以下是在EXCEL录制的宏,我想在C#中操作它,哪位高手帮转换一下,或提供引用透视表的方法,非常感谢!!Sub Macro1()
'
' Macro1 Macro
' 宏由 USER 录制,时间: 2008-10-17
''
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "a!R1C1:R102C20").CreatePivotTable TableDestination:="", TableName:= _
        "数据透视表1", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    With ActiveSheet.PivotTables("数据透视表1").PivotFields("客户")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("数据透视表1").PivotFields("类别")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1" _
        ).PivotFields("金额"), "求和项:金额", xlSum
End Sub

解决方案 »

  1.   

    private Excel.Application m_objExcelApp;              //Excelのインスタンス
    private Excel.Workbook m_objExcelWorkBook;            //ワークブックのインスタンス
    private Excel.Worksheet m_objExcelWorkSheet;          //ワークシートのインスタンスm_objExcelApp = new Excel.Application();
    m_objExcelApp.DisplayAlerts = false;m_objExcelWorkBook = m_objExcelApp.Workbooks.Open("你的Excel路径", Type.Missing, 
                    true,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,
                    Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,
                    Type.Missing,Type.Missing);m_objExcelWorkSheet = (Excel.Worksheet)m_objExcelWorkBook.Sheets["你的Sheet名"];Excel.PivotCaches objPivot = m_objExcelWorkBook.PivotCaches();
                objPivot.Add(Excel.XlPivotTableSourceType.xlDatabase, "a!R1C1:R102C20").CreatePivotTable
                    ("","数据透视表1",Type.Missing,Type.Missing);            m_objExcelWorkBook.PivotTableWizard(Type.Missing, Type.Missing, m_objExcelWorkSheet.Cells[3, 1],
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);            Excel.Range objRange = (Excel.Range)m_objExcelWorkSheet.Cells[3, 1];
                objRange.Select();            Excel.PivotTable objTable = (Excel.PivotTable)m_objExcelWorkSheet.PivotTables("数据透视表1");            Excel.PivotField objField = (Excel.PivotField)objTable.PivotFields("客户");            objField.Orientation=Excel.XlPivotFieldOrientation.xlRowField;
                objField.Position="1";
      

  2.   

    不行啊 什么反应都没有 打开EXCEL也没有数据透视表