Excel导入单元格颜色我在 Excel 导入中使用了导入单元格颜色,因为我的客户对应包含或排除的单元格进行了着色。颜色导入正常,但我还没有找到一种简单的方法来访问单元格的颜色状态以排除这些单元格。我发现的唯一解决方法是获取列脚本并解析出行号。恐怕这可能不太可靠。有没有直接读取单元格颜色的函数?请注意,导入单元格颜色不会更改行状态或设置列的任何颜色属性。
dt = Open(
"Data.xlsx",
Worksheets( "Sheet1" ),
Use for all sheets( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 2 ),
Data Starts on Row( 3 ),
Data Starts on Column( 1 ),
Data Ends on Column( 1 ),
Import Cell Colors( 1 )
)
);
Rlist = {};
t = arg(arg((:SubjectID << get script),4),1);
for(i=1,i<=narg(t),i++,insert into(Rlist, arg(arg(t,i),2))); //the first arg is the colour the second the list of rows
dt1 = dt << subset(rows(Rlist));回复:Excel导入单元格颜色这仅供博客读者参考,并不擅长剥离表达式的论点。
如果您需要获取任何 JMP 数据表的列中彩色单元格的行号(和颜色),并且还有与该列关联的其他属性,则“颜色单元格”不是第四个参数。
附件是示例数据表 Big Class.jmp,其中列年龄以及 2 组彩色单元格(红色和蓝色)。 下面是一个可以应用于任何列的函数,并以应用于 :age 列的示例为例。
CellColors = Function({colnme}, {ccol, cjsl, i, targ, clr={}, found=0},
ccol = column(current data table(), colnme);
cjsl = ccol << get script;
//show(cjsl);
for(i=1, i<=N Arg(cjsl) & found==0, i++,
targ = Arg Expr(cjsl, i);
//show(i, HeadName(targ));
if(Head Name(targ) == "Color Cells", found=1; )
);
for(i=1, i<=N Arg(targ), i++,
insert into(clr, Arg Expr(targ,i))
);
clr
);
clrList = CellColors("age");
show(clrList); 回复:Excel导入单元格颜色正如您所说,我知道检索单元格颜色的唯一方法是重新检索该列的脚本。我在 JMP 14 中没有发现这方面的任何变化。