#' @export
write_csv_cols_det <- function(df, cols_det, file){
cols_app <- data.frame(colname=colnames(df)) %>%
left_join(cols_det, by="colname")
write.table(
cols_app %>% t,
file,
row.names = FALSE,
col.names = FALSE,
append = FALSE,
sep = ";",
dec = ",",
fileEncoding = "latin1",
quote = FALSE
)
write.table(
df,
file,
row.names = FALSE,
col.names = FALSE,
append = TRUE,
sep = ";",
dec = ",",
fileEncoding = "latin1",
quote = FALSE
)
}
#' @export
read_excel_allsheets <- function(filename, tibble = FALSE) {
sheets <- readxl::excel_sheets(filename)
x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X))
if(!tibble) x <- lapply(x, as.data.frame)
names(x) <- sheets
x
}
#' @export
write_excel_allsheets <- function(df_list, filename, tibble = FALSE, variables=NULL) {
wb <- createWorkbook()
startRow <- ifelse(is.null(variables), 1, 2)
if (length(df_list) > 0) {
for (i in 1:length(df_list)) {
df <- df_list[[i]]
sheetName <- names(df_list)[[i]]
addWorksheet(wb = wb, sheetName = sheetName, gridLines = FALSE)
if (!is.null(variables)) {
vars <- variables %>%
dplyr::filter(type == sheetName, db_name %in% colnames(df))
df <- df[, vars$db_name]
for (df_col in vars$db_name){
var_row <- vars %>%
dplyr::filter(db_name == df_col)
if (!is.na(var_row$decimal)) {
df[, df_col] <- round(df[, df_col], var_row$decimal)
}
}
colnames(df) <- vars$name
writeData(wb = wb, sheet = i, x = t(vars$unit), colNames = F)
}
writeDataTable(wb = wb, sheet = i, x = df, startRow = startRow)
setColWidths(wb = wb, sheet = i, 1:ncol(df), widths = "auto")
}
}
saveWorkbook(wb, filename, overwrite = TRUE)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.