我正试图创建一个excel文件,其中包含隐藏/折叠的行,比如在openpyxl
webpage上,但是通过R中的reticulate
包。目前,我可以在这个过程中做任何事情,从生成虚拟数据到保存文件,保存以操纵工作表的row_dimensions
。我走这条路是因为R的excel编写包中没有一个能够折叠行,至少从我的发现来看是这样的。
下面的代码表示当前表单,虽然它不改变行的尺寸,但是能够输出到工作的excel文件
rc1<-letters
rc2<-seq(1,1040,40)
rc3<-seq(0,18199,700)
rc<-data.frame(rc1,rc2,rc3)
library(reticulate)
pyxl<-import("openpyxl")
rct<-pyxl$Workbook()
pcta<-rct$active
pcta$title<-"Trial"
library(magrittr)
for (i in 1:length(rc1)) {
for (j in 1:length(rc)) {
a<-rc[i,j]
a %>% pcta$cell(i,j,.)
}
}
pcta$row_dimensions[1:4]<-10
rct$save("trial.xlsx")
我也尝试过只给单个值赋值,这样当上面代码中的1:4
被1
或"1"
替换时,就会出现以下错误
Error in py_call_impl(callable, dots$args, dots$keywords) :
TypeError: 'float' object is not iterable
Error in py_call_impl(callable, dots$args, dots$keywords) :
TypeError: '<' not supported between instances of 'str' and 'int'
一个小时后才把我自己的问题的答案贴出来有点尴尬,但我想我会把它贴出来,以方便其他可能试图解决类似问题的人。首先,数字需要在
as.integer()
内声明,以避免浮点类型。其次,pcta$row_dimensions[]
不是实现这一点的方法,而是pcta$row_dimensions$group()
。我给出了下面的解决方案相关问题 更多 >
编程相关推荐