test_that("Deleting a Table Object", {
wb <- wb_workbook()
wb$add_worksheet("Sheet 1")
wb$add_worksheet("Sheet 2")
wb$add_data_table(sheet = "Sheet 1", x = iris, table_name = "iris")
wb$add_data_table(sheet = 1, x = mtcars, table_name = "mtcars", start_col = 10)
# Get table ----
expect_equal(nrow(wb_get_tables(wb, sheet = 1)), 2L)
expect_equal(nrow(wb_get_tables(wb, sheet = "Sheet 1")), 2L)
expect_equal(NROW(wb_get_tables(wb, sheet = 2)), 0)
expect_equal(NROW(wb_get_tables(wb, sheet = "Sheet 2")), 0)
expect_error(wb_get_tables(wb, sheet = 3), "Invalid sheet position")
expect_error(wb_get_tables(wb, sheet = "Sheet 3"))
exp <- data.frame(
tab_name = c("iris", "mtcars"),
tab_ref = c("A1:E151", "J1:T33"),
stringsAsFactors = FALSE
)
expect_equal(wb_get_tables(wb, sheet = 1), exp, ignore_attr = TRUE)
expect_equal(wb_get_tables(wb, sheet = "Sheet 1"), exp, ignore_attr = TRUE)
expect_equal(nrow(wb$tables), 2L)
## Deleting a worksheet ----
wb$remove_worksheet(1)
expect_equal(nrow(wb$tables), 2L)
expect_equal(NROW(wb_get_tables(wb, sheet = 1)), 0)
expect_equal(wb$tables$tab_name, c("iris_openxlsx_deleted", "mtcars_openxlsx_deleted"))
expect_equal(wb$tables$tab_sheet, c(0, 0))
## write same tables again ----
wb$add_data_table(sheet = 1, x = iris, table_name = "iris")
wb$add_data_table(sheet = 1, x = mtcars, table_name = "mtcars", start_col = 10)
expect_equal(wb$tables$tab_name, c("iris_openxlsx_deleted", "mtcars_openxlsx_deleted", "iris", "mtcars"))
expect_equal(wb$tables$tab_sheet, c(0, 0, 1, 1))
expect_equal(nrow(wb_get_tables(wb, sheet = 1)), 2L)
expect_equal(nrow(wb_get_tables(wb, sheet = "Sheet 2")), 2L)
expect_error(wb_get_tables(wb, sheet = 2))
expect_error(wb_get_tables(wb, sheet = "Sheet 1"))
expect_equal(wb_get_tables(wb, sheet = 1), exp, ignore_attr = TRUE)
expect_equal(wb_get_tables(wb, sheet = "Sheet 2"), exp, ignore_attr = TRUE)
expect_equal(nrow(wb$tables), 4L)
## wb_remove_tables ----
## remove iris and re-write it
wb$remove_tables(sheet = 1, table = "iris")
expect_equal(nrow(wb$tables), 4L)
expect_equal(wb$worksheets[[1]]$tableParts, "<tablePart r:id=\"rId2\"/>", ignore_attr = TRUE)
expect_equal(attr(wb$worksheets[[1]]$tableParts, "tableName"), "mtcars")
expect_equal(wb$tables$tab_name, c(
"iris_openxlsx_deleted",
"mtcars_openxlsx_deleted",
"iris_openxlsx_deleted",
"mtcars"
))
## wb_remove_tables clears table object and all data
wb$add_data_table(sheet = 1, x = iris, table_name = "iris", start_col = 1)
temp <- temp_xlsx()
wb_save(wb, temp)
expect_equal(wb$worksheets[[1]]$tableParts, c("<tablePart r:id=\"rId2\"/>", "<tablePart r:id=\"rId3\"/>"), ignore_attr = TRUE)
expect_equal(attr(wb$worksheets[[1]]$tableParts, "tableName"), c("mtcars", "iris"))
wb$remove_tables(sheet = 1, table = "iris")
expect_equal(nrow(wb$tables), 5L)
expect_equal(wb$worksheets[[1]]$tableParts, "<tablePart r:id=\"rId2\"/>", ignore_attr = TRUE)
expect_equal(attr(wb$worksheets[[1]]$tableParts, "tableName"), "mtcars")
expect_equal(wb$tables$tab_name, c(
"iris_openxlsx_deleted",
"mtcars_openxlsx_deleted",
"iris_openxlsx_deleted",
"mtcars",
"iris_openxlsx_deleted"
))
expect_equal(wb_get_tables(wb, sheet = 1), exp[2, ], ignore_attr = TRUE)
file.remove(temp)
})
test_that("Save and load Table Deletion", {
temp_file <- temp_xlsx()
wb <- wb_workbook()
wb$add_worksheet("Sheet 1")
wb$add_worksheet("Sheet 2")
wb$add_data_table(sheet = "Sheet 1", x = iris, table_name = "iris")
wb$add_data_table(sheet = 1, x = mtcars, table_name = "mtcars", start_col = 10)
###################################################################################
## Deleting a worksheet
wb$remove_worksheet(1)
expect_equal(nrow(wb$tables), 2L)
expect_equal(NROW(wb_get_tables(wb, sheet = 1)), 0)
expect_equal(wb$tables$tab_name, c("iris_openxlsx_deleted", "mtcars_openxlsx_deleted"))
expect_equal(wb$tables$tab_sheet, c(0, 0))
## both table were written to sheet 1 and are expected to not exist after load
wb_save(wb, temp_file)
wb <- wb_load(file = temp_file)
expect_null(wb$tables)
file.remove(temp_file)
###################################################################################
## Deleting a table
wb <- wb_workbook()
wb$add_worksheet("Sheet 1")
wb$add_worksheet("Sheet 2")
wb$add_data_table(sheet = "Sheet 1", x = iris, table_name = "iris")
wb$add_data_table(sheet = 1, x = mtcars, table_name = "mtcars", start_col = 10)
## remove iris and re-write it
wb$remove_tables(sheet = 1, table = "iris")
expect_equal(wb$tables$tab_name, c("iris_openxlsx_deleted", "mtcars"))
temp_file <- temp_xlsx()
wb$save(temp_file)
wb <- wb_load(file = temp_file)
expect_equal(nrow(wb$tables), 1L)
expect_equal(wb$tables$tab_name, "mtcars")
expect_equal(wb$worksheets[[1]]$tableParts, "<tablePart r:id=\"rId2\"/>", ignore_attr = TRUE) ## rId reset
expect_equal(unname(attr(wb$worksheets[[1]]$tableParts, "tableName")), "mtcars")
file.remove(temp_file)
## now delete the other table
wb <- wb_workbook()
wb$add_worksheet("Sheet 1")
wb$add_worksheet("Sheet 2")
wb$add_data_table(sheet = "Sheet 1", x = iris, table_name = "iris")
wb$add_data_table(sheet = 1, x = mtcars, table_name = "mtcars", start_col = 10)
wb$add_data_table(sheet = 2, x = mtcars, table_name = "mtcars2", start_col = 3)
wb$remove_tables(sheet = 1, table = "iris")
wb$remove_tables(sheet = 1, table = "mtcars")
expect_equal(wb$tables$tab_name, c("iris_openxlsx_deleted", "mtcars_openxlsx_deleted", "mtcars2"))
temp_file <- temp_xlsx()
wb_save(wb, temp_file)
wb <- wb_load(file = temp_file)
expect_equal(nrow(wb$tables), 1L)
expect_equal(wb$tables$tab_name, "mtcars2")
expect_length(wb$worksheets[[1]]$tableParts, 0)
expect_equal(wb$worksheets[[2]]$tableParts, "<tablePart r:id=\"rId1\"/>", ignore_attr = TRUE)
expect_equal(unname(attr(wb$worksheets[[2]]$tableParts, "tableName")), "mtcars2")
unlink(temp_file)
## write tables back in
wb$add_data_table(sheet = "Sheet 1", x = iris, table_name = "iris")
wb$add_data_table(sheet = 1, x = mtcars, table_name = "mtcars", start_col = 10)
expect_equal(nrow(wb$tables), 3L)
expect_equal(wb$tables$tab_name, c("mtcars2", "iris", "mtcars"))
expect_length(wb$worksheets[[1]]$tableParts, 2)
expect_equal(wb$worksheets[[1]]$tableParts, c("<tablePart r:id=\"rId1\"/>", "<tablePart r:id=\"rId2\"/>"), ignore_attr = TRUE)
expect_equal(unname(attr(wb$worksheets[[1]]$tableParts, "tableName")), c("iris", "mtcars"))
expect_length(wb$worksheets[[2]]$tableParts, 1)
expect_equal(wb$worksheets[[2]]$tableParts, c("<tablePart r:id=\"rId1\"/>"), ignore_attr = TRUE)
expect_equal(unname(attr(wb$worksheets[[2]]$tableParts, "tableName")), "mtcars2")
wb_save(wb, temp_file)
## Ids should get reset after load
wb <- wb_load(file = temp_file)
expect_equal(nrow(wb$tables), 3L)
expect_equal(wb$tables$tab_name, c("iris", "mtcars", "mtcars2"))
expect_length(wb$worksheets[[1]]$tableParts, 2)
expect_equal(wb$worksheets[[1]]$tableParts, c("<tablePart r:id=\"rId1\"/>", "<tablePart r:id=\"rId2\"/>"), ignore_attr = TRUE)
expect_equal(unname(attr(wb$worksheets[[1]]$tableParts, "tableName")), c("iris", "mtcars"))
expect_length(wb$worksheets[[2]]$tableParts, 1)
expect_equal(wb$worksheets[[2]]$tableParts, c("<tablePart r:id=\"rId1\"/>"), ignore_attr = TRUE)
expect_equal(unname(attr(wb$worksheets[[2]]$tableParts, "tableName")), "mtcars2")
unlink(temp_file)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.