我有两个表。他们两个的第一列应该有固定的宽度,比如说,1,5英寸。下面有一个示例脚本,其中名为df1
的表我使用了flextable()函数,名为df2
的表我使用了flextable()和width()函数。然而,所需列的宽度没有固定到给定的长度,即1,5英寸。
有人能告诉我如何修复列宽吗?
library(shinydashboard)
library(shiny)
library(rhandsontable)
library(flextable)
df1 = data.table(
"Сolumn1"= as.character(),
"Column2"= as.numeric(),
"Сolumn3"= as.character()
)
flextable(
df1,
col_keys = names(df1),
cwidth = 0.75,
cheight = 0.25
)
qflextable(df1)
df2 = data.table(
"Сolumn1"= as.character(),
"Column2"= as.numeric(),
"Сolumn3"= as.character()
)
df2 <- flextable(head(df2))
df2 <- width(df2, width = 1.5)
ui <- dashboardPage(
dashboardHeader(title = "Assets"),
dashboardSidebar(
menuItem("Home", tabName = "home"),
menuItem("Current assets",
tabName = "CurrentAssets",
menuSubItem("Inventory", tabName = "inventory")
)
),
dashboardBody(
tabItems(
tabItem(
tabName = "inventory",
column(
width = 7,
"df1",
rHandsontableOutput("Table1")
),
column(
width = 7,
"df2",
rHandsontableOutput("Table2")
)
)
)
)
)
server <- function(input, output, session) {
output$Table1 <- renderRHandsontable({
rhandsontable(df1, stretcH="all")
})
output$Table2 <- renderRHandsontable({
rhandsontable(df2, stretcH="all")
})
}
shinyApp(ui, server)
字符串
1条答案
按热度按时间3yhwsihp1#
我不太清楚你想用
flextable
实现什么。当你将flextable
对象传递给rhandsontable
时,你的代码返回一个错误。你只能有两个。你可以使用flextable
或rhandsontable
创建你的表。但是不可能先创建一个具有固定列宽的flextable
,然后再转换它如果你想要后者,那么你必须使用rhandsontable
包提供的选项来设置列宽。从调整
rhandsontable
大小的文档中,您可以使用hot_cols()
的colWidths=
参数设置列宽。此外,rhandsontable()
有一个参数rowHeaderWidth
来设置行名称列的宽度。下面我将
rowHeaderWidth
设置为200,并使用数字向量将第一列的宽度设置为100,将第二列和第三列的宽度设置为50。注意事项:对于列布局,您总共只有12列,即当您希望两个表都在一行中时,将两个表的列宽设置为7将不起作用。因此,我将两个表的宽度设置为6。
字符串
的数据