私はこれが私に尋ねた2つの質問のうち少なくとも1つにお答えしたいと思っています。hereですが、EPPlus/OpenXMLでPivotCacheを作成する方法を探しています。どのようにそれを行うのかを示すオンラインで/何かをドキュメントで見つけることができます。OpenMML/EPPlus - .NETでPivotCacheを作成する
だから、私はEPPlusで作成したExcelシート、wksRawData
を持っていると私はwksRawData.Cells(wksRawData.Dimension.Address)
のピボットキャッシュに基づいてピボットテーブルと第二のシートを作成したいsuposing - その後、私はwksRawDataを削除することができますが、まだ続けるの希望でピボットテーブル。どうすればいい?
これまでのところ、私の2番目のワークシートにピボットテーブルを作成するための私のコードは次のとおりです。
Dim wksRawData As ExcelWorksheet = wbk.Worksheets("Raw Data")
Dim wksPvtTbl As ExcelWorksheet = wbk.Worksheets("PivotTbl")
' Insert the Pivot Table to the sheet
Dim DataRange As ExcelRange = wksRawData.Cells(wksRawData.Dimension.Address)
Dim pvtTable As OfficeOpenXml.Table.PivotTable.ExcelPivotTable = wksPvtTbl.PivotTables.Add(wksPvtTbl.Cells("B4"), DataRange, "MyPivotTable")
pvtTable.Compact = True
pvtTable.CompactData = True
pvtTable.Outline = True
pvtTable.OutlineData = True
pvtTable.ShowHeaders = True
pvtTable.UseAutoFormatting = True
pvtTable.ApplyWidthHeightFormats = True
pvtTable.ShowDrill = True
pvtTable.RowHeaderCaption = "Caption"
' Set the top field
Dim r1 As OfficeOpenXml.Table.PivotTable.ExcelPivotTableField = pvtTable.Fields("FirstField")
r1.Sort = OfficeOpenXml.Table.PivotTable.eSortType.Ascending
pvtTable.RowFields.Add(r1)
' Set the second field
Dim r2 As OfficeOpenXml.Table.PivotTable.ExcelPivotTableField = pvtTable.Fields("SecondField")
r2.Sort = OfficeOpenXml.Table.PivotTable.eSortType.Ascending
pvtTable.RowFields.Add(r2)
r2.ShowAll = False
' Set the DataField
Dim df1 As OfficeOpenXml.Table.PivotTable.ExcelPivotTableField = pvtTable.Fields("DataField")
df1.SubTotalFunctions = OfficeOpenXml.Table.PivotTable.eSubTotalFunctions.Sum
pvtTable.DataFields.Add(df1)
は、このまたは他の質問上の任意およびすべてのヘルプは本当にいただければ幸いですPLEASE - それはC#であるかどうかVB、EPPlusまたはOpenXML - 私はちょうどこの作業を取得する必要があります!
感謝!
私はあなたがここでやって意味しているものについて少し困惑している...私の挑戦は、私は2番目のシートにデータに基づいてピボットテーブルを作成した後、第2のシートを削除したいということです。問題は、EPPlus経由で2番目のシートを削除すると、ワークブックを開くときにピボット・テーブルが空になることです。私の論理は、PivotCacheにデータを保存することでした(2番目のシートを削除することができます)が、私はそれを行う方法を見つけることができません。 –
他のQからあなたのロジックに従って、workbook_openのコードを書くことができました。これはワークブックが開くときにピボットキャッシュが自動的に作成されると2番目のシートを削除しますが、ここでは実際のキャッシュを作成する方法を学びたいと思います。 。 何かご意見は?? /あなたは何を提案していますか? –