Añadido compatibilidad formato virus.

This commit is contained in:
2025-10-22 16:56:39 +02:00
parent cbde07b8b5
commit 794af9f4b2
+73 -29
View File
@@ -32,34 +32,66 @@ ui <- fluidPage(
server <- function(input, output) { server <- function(input, output) {
dades<-reactiveValues() dades<-reactiveValues()
dades$taula<-NULL dades$taula<-NULL
dades$type<-NULL
## Listado ---- ## Listado ----
observe({ observe({
req(input$file) req(input$file)
df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx, path=input$file$datapath, range="B1:K31", col_type="text") if(read_xlsx(input$file$datapath, sheet = 1, range="B1:B1", col_names = F) == "1"){dades$type<-"ICO"}else{dades$type<-"Virus"}
names(df.list)<-excel_sheets(input$file$datapath)
name.row<-seq(from=1, to=nrow(df.list[[1]]), by=3) if(dades$type == "ICO"){
date.row<-seq(from=2, to=nrow(df.list[[1]]), by=3) df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx,
desc.row<-seq(from=3, to=nrow(df.list[[1]]), by=3) path=input$file$datapath, range="B2:K31", col_type="text", col_names=F)
for (i in 1:length(df.list)){ names(df.list)<-excel_sheets(input$file$datapath)
df.list[[i]]<-data.frame( name.row<-seq(from=1, to=nrow(df.list[[1]]), by=3)
Tanque=gsub("-[0-9]* #[0-9]*$","",names(df.list)[i]), date.row<-seq(from=2, to=nrow(df.list[[1]]), by=3)
Rack=gsub("^[A-Z]-| #[0-9]*$","",names(df.list)[i]), desc.row<-seq(from=3, to=nrow(df.list[[1]]), by=3)
Caja=names(df.list)[i], for (i in 1:length(df.list)){
Fila=rep(LETTERS[1:10], 10), df.list[[i]]<-data.frame(
Columna=factor(as.character(rep(1:10, each=10)),levels=as.character(1:10)), Tanque=gsub("-[0-9]* #[0-9]*$","",names(df.list)[i]),
Nombre=unlist(df.list[[i]][name.row,]), Rack=gsub("^[A-Z]-| #[0-9]*$","",names(df.list)[i]),
Fecha=unlist(df.list[[i]][date.row,]), Caja=names(df.list)[i],
Descripción=unlist(df.list[[i]][desc.row,]) 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
} }
df<-do.call(rbind, df.list) if(dades$type == "Virus"){
df[grepl("^[0-9]*$", df$Fecha),"Fecha"]<-as.character(as.Date(as.numeric(df[grepl("^[0-9]*$", df$Fecha),"Fecha"]), origin = "1899-12-30")) df.list<-lapply(excel_sheets(input$file$datapath), read_xlsx,
for (i in c("Tanque", "Rack","Caja","Fila")){ path=input$file$datapath, range="A1:J30", col_type="text", col_names=F)
df[,i]<-factor(df[,i]) 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],
`Posición`=factor(as.character(1:100),levels=as.character(1:100)),
Cell.Line=unlist(df.list[[i]][name.row,]),
`Descongelación`=unlist(df.list[[i]][date.row,]),
Passage=unlist(df.list[[i]][desc.row,])
)
}
df<-do.call(rbind, df.list)
df[grepl("^[0-9]*$", df$Passage),"Passage"]<-as.character(as.Date(as.numeric(df[grepl("^[0-9]*$", df$Passage),"Passage"]), origin = "1899-12-30"))
for (i in c("Tanque", "Rack","Caja")){
df[,i]<-factor(df[,i])
}
dades$taula<-df
} }
dades$taula<-df
}) })
output$DT <- renderDT({ output$DT <- renderDT({
@@ -76,17 +108,29 @@ server <- function(input, output) {
output$DT_caja <- renderTable({ output$DT_caja <- renderTable({
req(dades$taula) req(dades$taula)
caja_l<-dades$taula[dades$taula$Caja == input$caja,] if(dades$type == "ICO"){
caja_l$Nombre[is.na(caja_l$Nombre)]<-"" caja_l<-dades$taula[dades$taula$Caja == input$caja,]
caja_l$Fecha[is.na(caja_l$Fecha)]<-"" caja_l$Nombre[is.na(caja_l$Nombre)]<-""
caja_l$Descripción[is.na(caja_l$Descripción)]<-"" caja_l$Fecha[is.na(caja_l$Fecha)]<-""
caja<-as.data.frame(matrix(data= paste(caja_l$Nombre, caja_l$Fecha, caja_l$Descripción, sep="<br>"), 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)) ncol = 10, nrow=10))
colnames(caja)<-as.character(1:10) colnames(caja)<-as.character(1:10)
rownames(caja)<-LETTERS[1:10] rownames(caja)<-LETTERS[1:10]
}
if(dades$type == "Virus"){
caja_l<-dades$taula[dades$taula$Caja == input$caja,]
caja_l$Cell.Line[is.na(caja_l$Cell.Line)]<-""
caja_l$`Descongelación`[is.na(caja_l$`Descongelación`)]<-""
caja_l$Passage[is.na(caja_l$Passage)]<-""
caja<-as.data.frame(matrix(data= paste(caja_l$Cell.Line, caja_l$`Descongelación`, caja_l$Passage, sep="<br>"),
ncol = 10, nrow=10))
colnames(caja)<-NULL
rownames(caja)<-NULL
}
caja caja
}, rownames = TRUE, sanitize.text.function=identity, bordered = TRUE) }, rownames = TRUE, sanitize.text.function=identity, bordered = TRUE)
} }