Definindo uma tabela em vez de um intervalo como um 'cacheSource' da Tabela Dinâmica

Estou criando uma ferramenta para automatizar a criação de uma pasta de trabalho do Excel que contém uma tabela e uma Tabela Dinâmica associada. A estrutura da tabela está em uma planilha, cujos dados serão extraídos de um banco de dados usando outra ferramenta posteriormente. A tabela dinâmica está em uma segunda planilha usando a tabela da planilha anterior como a origem.

Estou usando o EPPlus para facilitar a construção da ferramenta, mas estou com problemas ao especificar ocacheSource. Estou usando o seguinte para criar o intervalo e a Tabela Dinâmica:

 var dataRange = dataWorksheet.Cells[dataWorksheet.Dimension.Address.ToString()];

 var pivotTable = pivotWorksheet.PivotTables.Add(pivotWorksheet.Cells["B3"], dataRange, name);

Isso define ocacheSource para:

<x:cacheSource type="worksheet" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:worksheetSource ref="A1:X2" sheet="dataWorksheet" />

ou no Excel, a fonte de dados está definida para:

dataWorksheet!$A$1:$X$2

Isso funciona bem se o tamanho da tabela nunca mudar, mas como o número de linhas será dinâmico, estou descobrindo que quando os dados são atualizados, os dados são lidos apenas a partir do intervalo inicial especificado.

O que eu quero fazer é definir programaticamente o cacheSource para:

<x:cacheSource type="worksheet" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <x:worksheetSource name="dataWorksheet" />
</x:cacheSource>

ou no Excel, defina a fonte de dados para:

dataWorksheet

Acredito que seja possível fazer isso acessando o XML diretamente (qualquer ponteiro sobre isso seria muito bem-vindo), mas existe alguma maneira de fazer isso usando o EPPlus?

questionAnswers(1)

yourAnswerToTheQuestion