【发布时间】:2012-03-20 17:29:44
【问题描述】:
我有一个模板 excel 文件,我从 SQL Server OLEDB 连接器向其中填充数据。该文件包含一些数据透视表,这些数据透视表引用数据库正在填写的数据集。
目前我所做的是使用“Data!$A:$K”范围选择工作表中的所有行。这带来了在数据透视表中显示空白值的问题。
我想做的是在数据集上创建一个命名表并将数据透视表引用到该表(此外,我还获得了命名表带来的其他一些优势)。
自然不会设置行数,所以我想找到一种方法将命名范围范围设置为仅实际值。
我为此使用 Excel 互操作和 C#,但我找不到更改范围的方法。我只知道:
oRng = oSheet.get_Range("Transactions");
选择命名范围。但是如何更改属于它的单元格呢?
或者我应该寻求更好的解决方案吗?
编辑
动态范围就是答案!
感谢@TimWilliams 的回复,我解决了这个问题:
“在模板中使用动态范围:http://ozgrid.com/Excel/DynamicRanges.htm”
我觉得动态范围在这里描述得更好:http://www.contextures.com/xlpivot01.html
我遇到了一个小问题,我无法使用数据透视表中的范围,因为它要求它至少需要 2 行才能操作 - 模板文件只有列标题。我在第二行的第一个单元格中添加了一个随机字符串,并且数据透视表接受了。
之后我不得不使用 c# 代码删除该行。
谢谢大家的帮助。
【问题讨论】:
-
在模板中使用动态范围:ozgrid.com/Excel/DynamicRanges.htm
标签: c# excel excel-interop