[]
IScenario 对象的集合。此接口提供对工作表 What-If 分析方案的访问。使用 IWorksheet.getScenarios() 可以获取该集合,然后添加、检索并遍历工作表中已保存的方案。
List<Object> values = Arrays.<Object>asList(0.05, 0.10, 0.15);
IScenarios scenarios = worksheet.getScenarios();
scenarios.add("Discount Plan", worksheet.getRange("B1:B3"), values, "Quarterly discount rates", true, false);
IScenario scenario = scenarios.get("Discount Plan");
add(String name,
IRange changingCells,
List<Object> values,
String comment,
boolean locked,
boolean hidden) get(int index) intgetCount()iterator()forEach, spliterator此属性返回当前工作表方案集合中 IScenario 对象的数量。
worksheet.getRange("B2").setValue(0.05);
worksheet.getRange("B3").setValue(0.08);
IRange range = worksheet.getRange("B2:B3");
worksheet.getScenarios().add("Discount Plan", range);
int count = worksheet.getScenarios().getCount();
使用此方法可按位置从工作表的方案集合中检索方案。
worksheet.getRange("B2").setValue(0.05);
worksheet.getRange("B3").setValue(0.08);
IRange range = worksheet.getRange("B2:B3");
worksheet.getScenarios().add("Discount Plan", range);
IScenario scenario = worksheet.getScenarios().get(0);
index - 要检索的方案在集合中的索引。名称匹配不区分大小写。
worksheet.getRange("B2").setValue(0.05);
worksheet.getRange("B3").setValue(0.08);
IRange range = worksheet.getRange("B2:B3");
worksheet.getScenarios().add("Discount Plan", range);
IScenario scenario = worksheet.getScenarios().get("Discount Plan");
name - 方案名称。null。假定方案值为 changingCells 中的当前值。作者名称(Document Solutions for Excel)和日期会自动作为注释文本添加。该方案被锁定,以防止更改。
worksheet.getRange("B2").setValue(0.05);
worksheet.getRange("B3").setValue(0.08);
IRange range = worksheet.getRange("B2:B3");
IScenario scenario = worksheet.getScenarios().add("Discount Plan", range);
作者名称(Document Solutions for Excel)和日期会自动作为注释文本添加。该方案被锁定,以防止更改。
values 中的值与 changingCells 中的单元格一一对应。例如,如果 changingCells 为 "B2:C3",则按 B2、C2、B3 和 C3 的顺序应用这些值。如果 values 为 null,则使用 changingCells 中的当前值作为方案值。
worksheet.getRange("C4").setValue(0.6);
worksheet.getRange("D7").setValue(50);
IScenario scenario = worksheet.getScenarios().add(
"90% highest",
worksheet.getRange("C4, D7"),
Arrays.asList(0.9, 60));
values 中的值与 changingCells 中的单元格一一对应。例如,如果 changingCells 为 "B2:C3",则按 B2、C2、B3 和 C3 的顺序应用这些值。如果 comment 为 null,Document Solutions for Excel 会自动添加作者名称和日期。
IRange range = worksheet.getRange("D2:D4");
IScenario scenario = worksheet.getScenarios().add(
"Reduced Rates",
range,
Arrays.asList(0.05, 0.03, 0.02),
"Adjusted discount rates");
values 中的值与 changingCells 中的单元格一一对应。例如,如果 changingCells 为 "B2:C3",则按 B2、C2、B3 和 C3 的顺序应用这些值。如果 values 为 null,则使用 changingCells 中的当前值作为方案值。如果 comment 为 null,Document Solutions for Excel 会自动添加作者名称和日期。
IRange range = worksheet.getRange("B2:B3");
IScenario scenario = worksheet.getScenarios().add(
"Discount Plan",
range,
Arrays.<Object>asList(0.05, 0.08),
"Quarterly discount rates",
true);
name - 方案名称。changingCells - 引用方案可变单元格的 IRange 对象。values - 一个包含 changingCells 中单元格方案值的列表;如果为 null,则使用 changingCells 中的当前值。comment - 方案的注释文本。如果为 null,则自动添加注释。locked - true 表示锁定该方案以防止更改;否则为 false。IScenario 对象。IllegalArgumentException - 如果已存在同名方案,或者 changingCells 不属于当前工作表。values 中的值与 changingCells 中的单元格一一对应。例如,如果 changingCells 为 "B2:C3",则按 B2、C2、B3 和 C3 的顺序应用这些值。如果 values 为 null,则使用 changingCells 中的当前值。如果 comment 为 null,Document Solutions for Excel 会自动添加作者名称和日期。
worksheet.getRange("B2").setValue(0.1);
worksheet.getRange("C2").setValue(0.15);
IScenario scenario = worksheet.getScenarios().add(
"Target Revenue",
worksheet.getRange("B2:C2"),
Arrays.<Object>asList(0.12, 0.18),
"Discount assumptions",
true,
false);
worksheet.getRange("B2:C2").setValue(new Object[][] {{0.2, 0.25}});
scenario.show();
Object appliedValues = worksheet.getRange("B2:C2").getValue();
name - 方案名称。changingCells - 引用方案可变单元格的 IRange 对象。values - 一个包含 changingCells 中单元格方案值的列表;null 表示使用这些单元格中的当前值。comment - 一个用于指定方案注释文本的字符串;null 会自动添加作者名称和日期。locked - true 表示锁定该方案以防止更改;否则为 false。hidden - true 表示隐藏该方案;否则为 false。IScenario 对象。IllegalArgumentException - 如果已存在同名方案,或者 changingCells 不属于当前工作表。使用此方法可按集合顺序遍历当前存储在工作表上的方案。
worksheet.getRange("B2").setValue(0.05);
worksheet.getRange("B3").setValue(0.08);
IRange range = worksheet.getRange("B2:B3");
worksheet.getScenarios().add("Discount Plan", range);
Iterator<IScenario> scenarios = worksheet.getScenarios().iterator();
if (scenarios.hasNext()) {
IScenario scenario = scenarios.next();
}