Bunun en azından, here sorduğum 2 sorudan birini yanıtlamada bana yardımcı olabileceğini umuyorum, ancak EPPlus/OpenXML'de bir PivotCache nasıl oluşturabileceğimi arıyorum ve ' Nasıl çevrimiçi olduğunu/nasıl yapılacağını gösteren belgelerini bulmayın.OpenXML/EPPlus - PivotCache içinde oluşturun. Net
Yani, bir Excel sayfası, wksRawData
EPPlus oluşturduğunuz suposing ve ben wksRawData.Cells(wksRawData.Dimension.Address)
pivot cache dayalı bir pivot tablodan ikinci bir tabaka oluşturmak istiyorum - o zaman ben wksRawData silebilir ama hala tutmak umuduyla Pivot tablo. Bunu nasıl yaparım?
:
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)
, her türlü bu konuda yardım veya başka bir soru GERÇEKTEN mutluluk duyacağız LÜTFEN - C# olmak olsun ya VB, EPPlus veya OpenXML - Sadece bu çalışmayı almam gerek!
TEŞEKKÜRLER!
Burada yapmak istediğiniz şey hakkında biraz kafam karıştı ... Zorluk, ikinci bir sayfadaki verilere dayanan pivot tabloyu oluşturmak ve sonra ikinci sayfayı silmektir. Sorun, ikinci sayfayı EPPlus ile silerseniz, çalışma kitabını açtığınızda pivot tablonun boş çıkmasıdır. Mantığım daha sonra verileri bir PivotCache'de saklamaktı (ki bu da ikinci sayfayı silmeme izin verecekti), ancak bunu yapmanın bir yolunu anlayamıyorum. –
Diğer Q'dan mantığınızı izleyerek, çalışma kitabı açıldığında pivotcache otomatik olarak excel tarafından oluşturulduktan sonra ikinci sayfayı silecek olan workbook_open için kod yazabilirim, ancak burada gerçek önbellek nasıl oluşturulacağını öğrenmek istiyorum .. . Düşüncesi olan var mı??/Ne öneriyorsun?? –