относительно новичок в программировании и исследовал это, но не может решить мою проблему.Чувствую себя немного глупым, так что будь осторожен со мной ...
using (SqlDataAdapter da = new SqlDataAdapter(sqlcmd))
{
DataTable dt = new DataTable();
da.Fill(dt);
var dataCell = worksheet.Cells["A3"];
var dataRange = dataCell.LoadFromDataTable(dt, true);
foreach (var sheets in package.Workbook.Worksheets)
{
foreach (var pivot in sheets.PivotTables)
{
if (pivot.Name == worksheet.Name){
Console.WriteLine("{0,-14}", pivot.Name);
Console.WriteLine("{0,-14}", dataRange.ToString());
pivot.CacheDefinition.SourceRange = dataRange;
Console.ReadKey();
}
}
}
}
, поэтому я получаю dataRange из таблицы данных.Кажется, это работает нормально.В этом случае, у меня есть «A3: W21622» в качестве значения, входящего в циклы foreach.У меня так, что я хочу обновить диапазоны сводной таблицы, которые используют данные из DT.
pivot.CacheDefinition.SourceRange = dataRange;
Вот где я получаю NULLReference.Извините, я заблудился здесь, и это последний кусочек пазла, который в противном случае доставил вам удовольствие.