对编程来说相对较新,并且对此进行了研究,但无法解决我的问题。已经有点笨了,所以对我好一点...
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的地方。抱歉,我迷路了,这是本来令人愉悦的体验之谜的最后一块。