以下是在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
'
' 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
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";