- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我正在尝试为数据透视表添加一些代码颜色。它可以很好地为单元格着色,但如果我刷新表格,所有颜色都会消失,就好像这些颜色没有正确附加到数据透视表一样。
我有以下代码(这是从一个更大的代码中截取的):
myPivotTable.PivotSelect("'" + item["Name"].ToString() + "'[All;Total]", XlPTSelectionMode.xlDataAndLabel, true);
((Range)Globals.ThisWorkbook.Application.Selection).Interior.Color = 15962653;
我试过在 VB 的 Excel 中做一个宏,当它运行时,它工作得很好,所以我不明白为什么 C# VSTO 不能工作...
ActiveSheet.PivotTables("PivotTable1").PivotSelect "'ItemName'[All;Total]", xlDataAndLabel, True
Selection.Interior.Color = 15962653
非常感谢您的帮助:)
编辑
这里有更多的代码。BaseVars.GlobalWB 是一个引用事件工作簿 (Globals.ThisWorkBook) 的变量。这使得同时使用 2 个 Excel 成为可能,而 VSTO 不会在错误的工作簿上运行代码。
foreach (DataRow item in myPivotTableFields.Tables[0].Rows)
{
// Field name from data sheet
myPivotField = (PivotField)myPivotFields.Item(item["Name"].ToString());
// Field name in the pivot table
myPivotField.Caption = item["Caption"].ToString();
// Their subtotal value
myPivotField.set_Subtotals(Type.Missing, GenerateSubTotalArray(item["SubTotal"].ToString()));
#region Attribs
//Include new items in manual filter
if (item["Attrib01"].ToString() == "True")
{
myPivotField.IncludeNewItemsInFilter = true;
}
else
{
myPivotField.IncludeNewItemsInFilter = false;
}
// Show items labels in outline form
if (item["Attrib02"].ToString() == "Outline")
{
myPivotField.LayoutForm = XlLayoutFormType.xlOutline;
}
else
{
myPivotField.LayoutForm = XlLayoutFormType.xlTabular;
}
// Display labels from the next field in the same column
if (item["Attrib03"].ToString() == "True")
{
myPivotField.LayoutCompactRow = true;
}
else
{
myPivotField.LayoutCompactRow = false;
}
// Display subtotals at the top of each group
if (item["Attrib04"].ToString() == "AtBottom")
{
myPivotField.LayoutSubtotalLocation = XlSubtototalLocationType.xlAtBottom;
}
else
{
myPivotField.LayoutSubtotalLocation = XlSubtototalLocationType.xlAtTop;
}
// Insert blank line after each item label
if (item["Attrib05"].ToString() == "True")
{
myPivotField.LayoutBlankLine = true;
}
else
{
myPivotField.LayoutBlankLine = false;
}
// Show items with no data
if (item["Attrib06"].ToString() == "True")
{
myPivotField.ShowAllItems = true;
}
else
{
myPivotField.ShowAllItems = false;
}
// Insert page break after each item
if (item["Attrib07"].ToString() == "True")
{
myPivotField.LayoutPageBreak = true;
}
else
{
myPivotField.LayoutPageBreak = false;
}
#endregion
// Set up the pivot table selection
if (item["Selection"].ToString() != "(blank)")
{
myItems = new List<string>();
myItems = GlobalFunc.Explode(item["Selection"].ToString());
SetUpPivotTableSelection(myPivotTable, item["Name"].ToString(), myItems);
}
else if (item["Selection"].ToString() == "(blank)" && item["Orientation"].ToString() == "Filter")
{
myPivotField.ClearAllFilters();
myPivotField.CurrentPage = "(All)";
}
try
{
myPivotField.ClearValueFilters();
myPivotField.ShowDetail = true;
}
catch (Exception ex)
{
GlobalFunc.DebugWriter("Error during Pivot Table Reset: " + ex.Message);
}
try
{
myPivotTable.PivotSelect("'" + item["Name"].ToString() + "'[All;Total]", XlPTSelectionMode.xlDataAndLabel, true);
// Set up the fields borders if it has any
myRange = BaseVars.GlobalWB.Application.get_Range(BaseVars.GlobalWB.Application.Selection, BaseVars.GlobalWB.Application.Selection);
myRange.Borders[XlBordersIndex.xlEdgeBottom].LineStyle = (XlLineStyle)InsertLineStyle(item["Attrib12"].ToString());
myRange.Borders[XlBordersIndex.xlEdgeLeft].LineStyle = (XlLineStyle)InsertLineStyle(item["Attrib13"].ToString());
myRange.Borders[XlBordersIndex.xlEdgeRight].LineStyle = (XlLineStyle)InsertLineStyle(item["Attrib14"].ToString());
myRange.Borders[XlBordersIndex.xlEdgeTop].LineStyle = (XlLineStyle)InsertLineStyle(item["Attrib15"].ToString());
}
catch (Exception ex)
{
GlobalFunc.DebugWriter("<LI>Error occured: " + ex.Message + "</LI>");
}
// Insert the colors of the field, gradient or solid
if (item["Color_Total2"].ToString() != null && item["Color_Total2"].ToString() != "")
{
Base.InsertGradient(myRange, int.Parse(item["Color_Total1"].ToString().Replace("0x", ""), System.Globalization.NumberStyles.HexNumber), int.Parse(item["Color_Total2"].ToString().Replace("0x", ""), System.Globalization.NumberStyles.HexNumber), false);
}
else if (item["Color_Total1"].ToString() != null && item["Color_Total1"].ToString() != "")
{
BaseVars.GlobalWB.Application.get_Range(BaseVars.GlobalWB.Application.Selection, BaseVars.GlobalWB.Application.Selection).Interior.Color = int.Parse(item["Color_Total1"].ToString().Replace("0x", ""), System.Globalization.NumberStyles.HexNumber);
}
}
最佳答案
如果您使用的是 C# VSTO,请不要使用 Selection.Interior.Color。请改用 Selection.Interior.ColorIndex。 Excel 使用 56 色调色板,您在 C# 中指定的任何颜色都将“转换”为其中一种调色板颜色。有效的 ColorIndex 值介于 1 和 56 之间。另请查看有关调色板和 Excel 的有用引用。
关于C#VSTO : Coloring pivottable cells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2864047/
pivottable.refreshtable 方法有什么区别?和 pivottable.update ? 我一直在谷歌搜索,但没有弄清楚 pivottable.refreshtable足以更新数据透
打开 时出现“The PivotTable field name is not valid. To create a PivotTable report, you must use data that
我正在使用 PivotTable.js 为报表透视一些数据。在报告中,我需要显示总和为零的行,并希望在总计列中显示该零。使用 aggregatorTemplates.sum 时,零的总和似乎是一个黑色
所以我正在使用 PivotTable.js,它对工作有很大帮助。 但现在,我正在尝试让过滤器根据值更改单元格的颜色或单元格内的字体。 例如,如果我的数据集中有一组日期 dates = ["N/A",
我正在尝试使用 PivotTable.JS Script by Nicolas Kruchten我面临以下问题: 我的数据中的某些字段具有多个值。对于例如在下面的条目中,有多个“分割”和“趋势”: {
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我正在使用 JavaScript 插件 ( pivottable.js ) 创建数据透视表以在 django 站点上显示大数据。我想添加一个固定/粘性的表头,它在我向下滚动时位于 div 的顶部。 由
您好,我正在尝试为数据透视表添加一些代码颜色。它可以很好地为单元格着色,但如果我刷新表格,所有颜色都会消失,就好像这些颜色没有正确附加到数据透视表一样。 我有以下代码(这是从一个更大的代码中截取的):
我想基于同一工作簿中的数据集(包含在工作表中)创建数据透视表。 当我运行宏时,工作簿是打开的。数据集来自在 Access 中运行查询,然后将其导出到 Excel。我还尝试在运行宏之前保存工作簿。我正在
我的 json 响应中有几列 年 用户 月 时间 我想构建一个带有预定义值的自定义数据透视表——比如年:2015 年和月:06 我正在使用 nicolaskruchten/pivottable。我看到
我正在使用 nicolaskruchten pivottable,使用以下方法显示我的数据: $('#output').pivot([ {country: "USA", city: "Bost
我正在尝试刷新 excel 中的数据透视表并使用 python 的 win32com 更新现有过滤器。 但是,我遇到了以下错误: com_error: (-214735267, 'Exception
我已经实现了react-pivottable只是想知道是否有一种方法可以在jQuery数据 TableView 中显示整个数据集 即,我有几列想要在表格 View 中显示所有列,以获取下面的以下数据
我正在学习 Angular 2 并尝试在 Angular 2 应用程序中导入 nicolas kruchten 的 Pivottable js 当我尝试将数据透视表js包装在 Angular 2中时,
我试图在 jupyter notebook 中重现 pivottable.js 的示例(此处为 https://github.com/nicolaskruchten/jupyter_pivottabl
我有一个数据透视表(源数据)页面,用于在另一张工作表上创建数据透视表。我这样做是这样的: var pch = _xlBook.PivotCaches(); int pivotDataRowsUsed
因此,我通过用户窗体内的命令箱修改了数据透视表。如果用户键入的名称不在列表中,则会出现错误 No item of this name exists in the PivotTable report.
我刚刚浏览了一下 Devexpress PivotGrid/PivotTable,哇,我印象深刻(参见 here 的示例,跳到结尾以查看一些功能)。 我正在开发一个 java web 应用程序,其中显
所有的问题是表中的数据来自数据库,通过 API,所以表是动态创建的,因此我不能为此使用 CSS,请记住下面的代码是从中记下的数据数组中的表 .. 我想将下面的这个 css 转换成 Javascript
我录制这个宏是为了更新 16 个图表的日期范围。但是,正如您所看到的,我遇到了运行时错误。 我查看了 stackoverflow 上与此相关的其他线程,但没有一个接近。 Excel 上的该死的帮助按钮
我是一名优秀的程序员,十分优秀!