为什么矢量参数在 setColumnWidth {xlsx} 中不起作用? [R]

why vector arguments not work in setColumnWidth {xlsx} ? [R]

您好,我正在使用包 {xlsx} 在 excel 文件中写入内容,并使用 setColumnWidth 来控制列宽。当我尝试使用向量来指示列索引和列宽时它不起作用

wb = createWorkbook()

sheet1 = createSheet(wb, sheetName = "test1")
sheet2 = createSheet(wb, sheetName = "test2")

setColumnWidth(sheet1, 1, 20)        
setColumnWidth(sheet2, 2:5, rep(20, 4)) 
# Error in .jcall(sheet, "V", "setColumnWidth", as.integer(ic), as.integer(colWidth *  : 
#         method setColumnWidth with signature (I[I)V not found

saveWorkbook(wb, 'test.xlsx')

有人知道如何解决这个问题吗?请告诉我。任何帮助表示赞赏。

你们其实很亲密!您需要做的就是替换

setColumnWidth(sheet2, 2:5, rep(20, 4))

更明确地声明

setColumnWidth(sheet2, colIndex=c(2:5), colWidth=20) 

这样,R 就知道您的第二个参数是针对索引为 2 到 5 的列。然后第三个参数仅适用于所有这四个列。

请记住,在将多个元素组合在一起时也要使用 c(),如 setColumnWidth 函数的第二个参数。