【发布时间】:2016-10-31 22:26:34
【问题描述】:
我正在尝试使用以下代码创建一个响应数据透视表更改的 Excel (2007) 加载项:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Excel.Worksheet sh = this.Application.ActiveSheet;
sh.PivotTableUpdate += new
Excel.DocEvents_PivotTableUpdateEventHandler(sh_PivotTableUpdate);
}
void sh_PivotTableUpdate(Excel.PivotTable TargetPivotTable)
{
MessageBox.Show("sh_PivotTableUpdate event fired");
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
创建 .dll 后,部署它/生成 .xll 文件就成了一项挑战;我在那里使用this post 进行指导,现在确实有一个 .xll 文件。
我能够将它添加到我想要响应代码的 Excel 电子表格(.xlsx 文件)中(通过文件 > Excel 选项 > 加载项 > 转到... > 浏览),但得到这个错误消息关于添加 .xll 文件:
我确实看到这里有一个 *.dna 文件 \packages\ExcelDna.AddIn.0.33.9\content\ExcelDna-Template.dna
...但是制作该文件的副本并将其名称更改为 [projectName].dna (Excel2010AddInForRptRunner-AddIn.dna),然后将其复制到与带有 .xlsx 的 .xll 文件相同的位置文件不是解决方案(没有双关语)。手动更改数据透视表不会触发事件/我没有看到“触发 sh_PivotTableUpdate 事件”消息。
.dna 文件确实像这样引用 .dll:
<ExternalLibrary Path="Excel2010AddInForRptRunner.dll" LoadFromBytes="true" Pack="true" />
那么我需要做些什么来解决我得到的错误消息并让 .xll 文件被电子表格接受,以便其代码运行并触发 PivotTableUpdate 事件处理程序?
【问题讨论】:
-
你应该忽略你链接到的帖子——在包目录中重命名文件的建议是不正确的。
ExcelDna.AddInNuGet 包会自动设置您需要的一切。
标签: pivot-table excel-interop office-addins excel-addins excel-dna