【发布时间】:2012-01-23 18:49:32
【问题描述】:
我正在尝试在 VSTO 中移动数据透视表,但根本没有成功。我的逻辑是找到数据透视表的范围,将其剪切并粘贴到一个新范围中,我确信工作表上不存在任何数据。
public static void MovePivotTable(string sheetName, PivotTable pivotTable, int newX, int newY, int width, int height)
{
try
{
Worksheet worksheet = GetOrCreateWorksheet(sheetName);
Range topLeft = (Range)worksheet.Cells[newX, newY];
Range bottomRight = (Range)worksheet.Cells[newX + width, newY + height];
Range newRange = worksheet.get_Range(topLeft, bottomRight);
pivotTable.TableRange1.Cut(Missing.Value);
newRange.PasteSpecial(XlPasteType.xlPasteAll, XlPasteSpecialOperation.xlPasteSpecialOperationNone,
Missing.Value, Missing.Value);
return;
}
catch (Exception)
{
}
finally
{
}
}
但是我总是遇到异常。任何一个: - PasteSpecial 失败。 - 类似于无法修改数据透视表的内容。
有人做过吗?他们能否确认这确实可行或不可行?有示例代码吗?
非常感谢, 肖恩
【问题讨论】:
-
你用什么库来操作excel表格?
标签: c# excel vsto paste pivot-table