Browse Source

Pimer comit funcional

main
marcelcosta 1 week ago
parent
commit
cbde07b8b5
1 changed files with 94 additions and 0 deletions
  1. +94
    -0
      Nitrogen-CIT/app.R

+ 94
- 0
Nitrogen-CIT/app.R

@ -0,0 +1,94 @@
library(shiny)
library(readxl)
library(DT)
library(dplyr)
# Define UI for application
ui <- fluidPage(
navbarPage("Nitrogen CIT",
tabPanel("Listado",
sidebarPanel(
fileInput(inputId = "file", label = "Fichero", multiple = F)
),
mainPanel(
DTOutput("DT")
)
),
tabPanel("Caja",
sidebarPanel(
selectInput(inputId = "test", "", choices = ""),
uiOutput(outputId = "caja_out")
),
mainPanel(
tableOutput("DT_caja")
)
)
)
)
# Define server logic required
server <- function(input, output) {
dades<-reactiveValues()
dades$taula<-NULL
## Listado ----
observe({
req(input$file)
df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx, path=input$file$datapath, range="B1:K31", col_type="text")
names(df.list)<-excel_sheets(input$file$datapath)
name.row<-seq(from=1, to=nrow(df.list[[1]]), by=3)
date.row<-seq(from=2, to=nrow(df.list[[1]]), by=3)
desc.row<-seq(from=3, to=nrow(df.list[[1]]), by=3)
for (i in 1:length(df.list)){
df.list[[i]]<-data.frame(
Tanque=gsub("-[0-9]* #[0-9]*$","",names(df.list)[i]),
Rack=gsub("^[A-Z]-| #[0-9]*$","",names(df.list)[i]),
Caja=names(df.list)[i],
Fila=rep(LETTERS[1:10], 10),
Columna=factor(as.character(rep(1:10, each=10)),levels=as.character(1:10)),
Nombre=unlist(df.list[[i]][name.row,]),
Fecha=unlist(df.list[[i]][date.row,]),
Descripción=unlist(df.list[[i]][desc.row,])
)
}
df<-do.call(rbind, df.list)
df[grepl("^[0-9]*$", df$Fecha),"Fecha"]<-as.character(as.Date(as.numeric(df[grepl("^[0-9]*$", df$Fecha),"Fecha"]), origin = "1899-12-30"))
for (i in c("Tanque", "Rack","Caja","Fila")){
df[,i]<-factor(df[,i])
}
dades$taula<-df
})
output$DT <- renderDT({
req(dades$taula)
datatable(dades$taula, filter = "top", rownames = F, escape = F, extensions='Buttons',options = list(autoWidth=TRUE, dom = 'Bfrtip',buttons=I('colvis'), lengthMenu=c(10,20,50), pageLength=30))
})
## Caja ----
output$caja_out<-renderUI({
observeEvent(dades$taula, {})
selectInput(inputId = "caja", "Caja", choices = unique(dades$taula$Caja))
})
output$DT_caja <- renderTable({
req(dades$taula)
caja_l<-dades$taula[dades$taula$Caja == input$caja,]
caja_l$Nombre[is.na(caja_l$Nombre)]<-""
caja_l$Fecha[is.na(caja_l$Fecha)]<-""
caja_l$Descripción[is.na(caja_l$Descripción)]<-""
caja<-as.data.frame(matrix(data= paste(caja_l$Nombre, caja_l$Fecha, caja_l$Descripción, sep="<br>"),
ncol = 10, nrow=10))
colnames(caja)<-as.character(1:10)
rownames(caja)<-LETTERS[1:10]
caja
}, rownames = TRUE, sanitize.text.function=identity, bordered = TRUE)
}
# Run the application
shinyApp(ui = ui, server = server)

Loading…
Cancel
Save