- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
注意:我有一个相关问题here ,但已完全更改代码并仍然收到相同的错误消息,即“数据透视表字段名称无效。要创建数据透视表,您必须使用组织为带有标签列的列表的数据。如果您正在更改数据透视表字段的名称,您必须为该字段键入一个新名称。"
正如您在下面的代码中看到的,数据透视表字段被赋予了名称(首先是“描述”,然后是“月份”):
private void AddPivotTable()
{
var pch = _xlBook.PivotCaches();
pch.Add(XlPivotTableSourceType.xlDatabase, "A6:F94")
.CreatePivotTable(_xlSheet.Cells[6, 1], "PivTab1", Type.Missing, Type.Missing);
var pvt = _xlSheet.PivotTables("PivTab1") as PivotTable;
if (pvt != null)
{
pvt.MergeLabels = true;
pvt.ErrorString = "";
pvt.DisplayErrorString = true;
var fld = ((PivotField)pvt.PivotFields("Description"));
fld.Orientation = XlPivotFieldOrientation.xlRowField;
fld = ((PivotField)pvt.PivotFields("Month"));
fld.Orientation = XlPivotFieldOrientation.xlColumnField;
fld.NumberFormat = "MMM yy";
fld.DataRange.Interior.Color = ColorTranslator.ToOle(Color.LightBlue);
}
}
我认为问题可能在于相同的 PivotField(“fld”)被用于“Description”行字段和“Month”列字段,所以我将代码重构为:
private void AddPivotTable()
{
var pch = _xlBook.PivotCaches();
pch.Add(XlPivotTableSourceType.xlDatabase, "A6:F94")
.CreatePivotTable(_xlSheet.Cells[6, 1], "PivTab1", Type.Missing, Type.Missing);
var pvt = _xlSheet.PivotTables("PivTab1") as PivotTable;
if (pvt != null)
{
pvt.MergeLabels = true;
pvt.ErrorString = "";
pvt.DisplayErrorString = true;
var descriptionPivotField = (PivotField)pvt.PivotFields("Description");
descriptionPivotField.Orientation = XlPivotFieldOrientation.xlRowField;
var monthPivotField = (PivotField)pvt.PivotFields("Month");
monthPivotField.Orientation = XlPivotFieldOrientation.xlColumnField;
monthPivotField.NumberFormat = "MMM yy";
monthPivotField.DataRange.Interior.Color = ColorTranslator.ToOle(Color.LightBlue);
}
}
...但这没什么区别;它仍然告诉我数据透视表字段名称无效 - 但哪个是“描述”或“月份”?两个都?为什么? ISTM 错误消息具有误导性或名称要求很奇怪。
当代码运行并生成工作表时,它应该看起来像这样,带有“Month”和“Description”数据透视表字段:
这是我生成的工作表当前的样子,但没有数据透视表或其字段(这是注释掉数据透视表代码时生成的内容):
问题的可能真正原因可能与错误消息的第二部分有关,即“...您必须使用组织为带有标签列的列表的数据。”但正如您在上面的屏幕截图中看到的那样,是数据从 A6(标题行的第一列)开始,并继续通过 F 列和第 94 行测试数据:
(实际上,数据在总计行接管之前继续到第 1570 行)。
我收到的完整错误信息是:
数据透视表字段名称无效。要创建数据透视表,您必须使用组织为带有标签列的列表的数据。如果要更改数据透视表字段的名称,则必须为该字段键入一个新名称。异常来源:Microsoft Office Excel异常 StackTrace:在 System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult,ExcepInfo&excepInfo,UInt32 argErr,字符串消息) 在 CallSite.Target(闭包,CallSite,ComObject,对象,字符串,对象,对象) 在 System.Dynamic.UpdateDelegates.UpdateAndExecute5[T0,T1,T2,T3,T4,TRet](CallSite 站点,T0 arg0,T1arg1,T2 arg2,T3 arg3,T4 arg4) 在 CallSite.Target(闭包,CallSite,PivotCache,对象,字符串,对象,对象) 在 System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid5[T0,T1,T2,T3,T4](CallSite 站点,T0 arg0,T1 arg1,T2 arg2,T3 arg3,T4 arg4) 在 C:\Projects\ReportRunner\ReportRunner 中的 ReportRunner.ProduceUsage.ProduceUsageRpt.AddPivotTable()\ProduceUsage\ProduceUsageRpt.cs:第 3195 行 在 C:\Projects\ReportRunner 中的 ReportRunner.ProduceUsage.ProduceUsageRpt.GenerateProduceUsageRpt()\ReportRunner\ProduceUsage\ProduceUsageRpt.cs:第 192 行
第 3195 行是这个:
pch.Add(XlPivotTableSourceType.xlDatabase, "A6:F94")
.CreatePivotTable(_xlSheet.Cells[6, 1], "PivTab1", Type.Missing, Type.Missing);
第 192 行是对 AddPivotTable() 的调用
cyboashu的回答听起来很有希望,但我不知道他例子中的“Sheet1”是工作表对象的名称还是工作表名称。
这是我的代码:
private Worksheet _xlSheet;
private static readonly String ProduceUsageByMonthSheetName = "Produce Usage by Month";
_xlSheet.Name = ProduceUsageByMonthSheetName;
...我尝试了所有我能想到的排列方式:
//pch.Add(XlPivotTableSourceType.xlDatabase, _xlSheet.Range("A6:F94")) //"PivotData!A1:H" + rowIdx)
//pch.Add(XlPivotTableSourceType.xlDatabase, _xlSheet!"A6:F94")
//pch.Add(XlPivotTableSourceType.xlDatabase, ProduceUsageByMonthSheetName!"A6:F94")
//pch.Add(XlPivotTableSourceType.xlDatabase, ProduceUsageByMonthSheetName.Range("A6:F94"))
//pch.Add(XlPivotTableSourceType.xlDatabase, "Produce Usage by Month"!"A6:F94")
pch.Add(XlPivotTableSourceType.xlDatabase, "Produce Usage by Month".Range("A6:F94"))
.CreatePivotTable(_xlSheet.Cells[6, 1], "PivTab1", Type.Missing, Type.Missing);
...但它们都无法编译:
最佳答案
您没有提供完整的限定范围地址。
.Add(XlPivotTableSourceType.xlDatabase, "A6:F94")
.CreatePivotTable(_xlSheet.Cells[6, 1], "PivTab1", Type.Missing, Type.Missing);
更改 "A6:F94"
以包含工作表名称,例如 Sheet1!"A6:F94"
或 Sheet1.Range("A6:F94"")
它将纠正错误。Excel 对象模型中的错误消息有点困惑。
更新
你正在混合它。如果工作表名称为“按月生产使用情况”,则而不是“按月产生使用量”.Range(“A6:F94”)) 使用“按月产生使用量!A6:F94”
提示;在 Excel 中记录一个宏以查看语法的工作原理。
关于c# - 为什么我的数据透视表字段名称被视为无效和/或我的数据被视为未组织为带有标签列的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060239/
将“”转换为“>”的主要目的是避免以下内联脚本: var foo = "alert('bug');"; // the value of foo is generated from server
我有以下想法: 在德语中我们有四个额外的字母(ä、ö、ü、ß),我不知道任何其他语言有这些声音,但我认为有口音的法国人也知道这个问题。我们在 Google Play 商店中有很多适用于城市、公交车站、
#!/bin/bash read nameArg find -name "$nameArg" 使用此代码,当我输入例如 *.txt 时,它将为我提供以 txt 结尾的所有文件,但我只想要名称为 *.t
我在 MySQL 5.7.27 中有一个带有 utf8mb4_unicode_ci 排序规则的用户表。 不幸的是, ı 没有像 i 那样进行线程化,例如,以下查询将找不到 Yılmaz select
我的简单 MySQL 查询: SELECT `word` FROM `nouns` WHERE `word` LIKE 'vandenys' 返回: vandenis 但是“vandenYs
虽然我以前用过这样的代码,而且很明显编译器有足够的信息可以工作,但我真的不明白为什么会这样编译: template auto foo(const T& t, I i) { return st
如何实现一个以 int 开头的函数,并在每次(经历有限数量的可能性)返回 1 的几个(例如,5 个) bool 值之一时从中减去 1。 理想情况下的外观是: function list1 list2
因此,如果我的数据库中有一个包含值的表 1 2 3 4 NULL 我执行了查询 SELECT MAX(col1) FROM 我会得到 4。有什么办法可以改变这个,所以 Null 将被视为最大值而不是
例如:我在数据库中有一条记录:[Example] Attena Illusive - 01 [720p].mkv尝试使用查询进行搜索: SELECT ts_rank_cd(to_tsvector('
我试图创建 2 个简单的盒子,并允许用户从 1 个盒子中选择数据,然后将其复制到第二个盒子。如果第二个框中已经有相同的文本,请在后面附加一些简单的文本。 它基本上在该项目不在第二个框中时起作用。但是,
这个问题已经有答案了: How to read a file from jar in Java? (6 个回答) 已关闭10 年前。 我想从我的 *jar 存档中读取文件。我在互联网上阅读了如何从 z
我在 Javascript 中偶然发现了一个我无法理解的极其奇怪的事件。 这是一个非常简单的 if 语句: let hours = 20; 我在这里设置了一个断点,并在调试器中设置了hours = 0
这两个查询给出了完全相同的结果: select * from topics where name='Harligt'; select * from topics where name='Härligt
我有一个包含数值和 NaN 的表格。求和时,如果所选值包含 NaN,则结果将为 NaN。有没有办法让 postgresql 在求和时将它们视为 0 而不是 NaN?或者我只需要将表中的所有 NaN 转
我有一个正在构建的页面,我希望当我滚动(向上或向下)页面时滚动到下一个 div(每个 div 是窗口高度的 100%)。并在那里“固定”,直到您再次滚动。可以在此处看到我正在努力完成的示例: http
我正在用 Javascript 制作一个小的 HTML 页面。它不需要服务器端,但我需要存储这个人所做的事情,所以我正在使用 localStorage。( list ) 如今,浏览器可以选择不存储 c
这两个查询给了我完全相同的结果: select * from topics where name='Harligt'; select * from topics where name='Härligt
我想向 Lua 公开一些 C++ 类。我可以调用Widget:New()获取带有元表集的返回用户数据到表 WidgetMeta . WidgetMeta包含所有 C++ 函数,它是 __index设置
我正在使用一个大型的旧数据库,现在我尝试使用 hibernate 而不是 SQL 来访问它。更大的问题之一是在外键中无限制地使用“0”和“-1”(意思是“NULL”)。 我生成了很多代码,但我手动添加
我试图将一个数字传递到一个 BYTES 数组中 - 但将该数字视为一个字符数组。这是我的代码: for(int i=1;i<=totalFiles;i++) { BYTE* input = n
我是一名优秀的程序员,十分优秀!