diff --git a/articles/data-validation-rules.html b/articles/data-validation-rules.html index 33783a0..f344cd9 100644 --- a/articles/data-validation-rules.html +++ b/articles/data-validation-rules.html @@ -79,7 +79,7 @@
vignettes/data-validation-rules.Rmd
data-validation-rules.Rmd
Notice that only 9 cells were joined, even though 15 rules were defined. Surely at least 15 cells ought to be joined? The reason why they are not is that the cells for the other 6 rules don’t exist – rules @@ -317,36 +316,31 @@
Finally the new data frame of rules can be joined to a data frame of
cells in any of the usual ways, via the sheet
and
ref
columns.
vignettes/smells.Rmd
smells.Rmd
Then we can unnest the data frames and filter for tokens that are constants, to find out which cells have constants in their formulas.
@@ -239,7 +239,7 @@+## # ℹ 191 more rowsMany formulas## 8 12 4 1 number 7 ## 9 12 4 0 number 12 ## 10 13 4 1 number 7 -## # … with 191 more rows
Which constants are most common? Unsurprisingly, 12 and 7 are almost equally abundant, but there are also lots of 6s and 9s – two- and three-quarterly figures? Then there are some 150000s and the familiar @@ -309,7 +309,7 @@
has_constants %>%
# filter(row <= 28) %>%
@@ -379,7 +379,7 @@ Detecting deeply nested formulas## 8 171 9 7
## 9 171 10 7
## 10 171 11 7
-## # … with 38 more rows
+## # ℹ 38 more rows
Do you wonder what those formulas look like?
sheet %>%
diff --git a/articles/tidyxl.html b/articles/tidyxl.html
index 516d7c6..2088d1a 100644
--- a/articles/tidyxl.html
+++ b/articles/tidyxl.html
@@ -79,7 +79,7 @@
Duncan
Garmonsway
- 2023-03-08
+ 2023-04-12
Source: vignettes/tidyxl.Rmd
tidyxl.Rmd
@@ -218,7 +218,7 @@ Examples#> 8 G2 Yes
#> 9 A3 Class
#> 10 B3 Sex
-#> # … with 12 more rows
+#> # ℹ 12 more rows
x[x$row == 4, c("address", "character", "numeric")]
#> # A tibble: 6 × 3
#> address character numeric
@@ -238,14 +238,14 @@ Formattingtidyxl, with the
xlsx_formats()
function.
-
+
Formatting is available by using the columns
local_format_id
and style_format
as indexes
into a separate list-of-lists structure. ‘Local’ formatting is the most
common kind, applied to individual cells. ‘Style’ formatting is usually
applied to blocks of cells, and defines several formats at once. Here is
a screenshot of the styles buttons in Excel.
-
+
Formatting can be looked up as follows.
# Bold
@@ -295,27 +295,26 @@ Formattingxlsx_cells(examples)$character_formatted[77]
#> [[1]]
#> # A tibble: 16 × 14
-#> character bold italic under…¹ strike vertA…² size color…³ color…⁴ color…⁵
-#> <chr> <lgl> <lgl> <chr> <lgl> <chr> <dbl> <chr> <int> <int>
-#> 1 "in-cell" FALSE FALSE NA FALSE NA 0 NA NA NA
-#> 2 "bold" TRUE FALSE NA FALSE NA 0 FF0000… 2 NA
-#> 3 "italic" FALSE TRUE NA FALSE NA 0 FF0000… 2 NA
-#> 4 "underline" FALSE FALSE single FALSE NA 0 FF0000… 2 NA
-#> 5 "underline… FALSE FALSE double FALSE NA 0 FF0000… 2 NA
-#> 6 "singleacc… FALSE FALSE single… FALSE NA 0 FF0000… 2 NA
-#> 7 "doubleacc… FALSE FALSE double… FALSE NA 0 FF0000… 2 NA
-#> 8 "strikethr… FALSE FALSE NA TRUE NA 0 FF0000… 2 NA
-#> 9 "subscript" FALSE FALSE NA FALSE subscr… 0 FF0000… 2 NA
-#> 10 "superscri… FALSE FALSE NA FALSE supers… 0 FF0000… 2 NA
-#> 11 "red" FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> 12 "theme" FALSE FALSE NA FALSE NA 0 FFC050… 6 NA
-#> 13 "tint" FALSE FALSE NA FALSE NA 0 FFC050… 6 NA
-#> 14 "size" FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> 15 "arial" FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> 16 "UTF8Stéph… FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> # … with 4 more variables: color_tint <dbl>, font <chr>, family <int>,
-#> # scheme <chr>, and abbreviated variable names ¹underline, ²vertAlign,
-#> # ³color_rgb, ⁴color_theme, ⁵color_indexed
+#> character bold italic underline strike vertAlign size color_rgb color_theme
+#> <chr> <lgl> <lgl> <chr> <lgl> <chr> <dbl> <chr> <int>
+#> 1 "in-cell" FALSE FALSE NA FALSE NA 0 NA NA
+#> 2 "bold" TRUE FALSE NA FALSE NA 0 FF000000 2
+#> 3 "italic" FALSE TRUE NA FALSE NA 0 FF000000 2
+#> 4 "underli… FALSE FALSE single FALSE NA 0 FF000000 2
+#> 5 "underli… FALSE FALSE double FALSE NA 0 FF000000 2
+#> 6 "singlea… FALSE FALSE singleAc… FALSE NA 0 FF000000 2
+#> 7 "doublea… FALSE FALSE doubleAc… FALSE NA 0 FF000000 2
+#> 8 "striket… FALSE FALSE NA TRUE NA 0 FF000000 2
+#> 9 "subscri… FALSE FALSE NA FALSE subscript 0 FF000000 2
+#> 10 "supersc… FALSE FALSE NA FALSE superscr… 0 FF000000 2
+#> 11 "red" FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> 12 "theme" FALSE FALSE NA FALSE NA 0 FFC0504D 6
+#> 13 "tint" FALSE FALSE NA FALSE NA 0 FFC0504D 6
+#> 14 "size" FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> 15 "arial" FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> 16 "UTF8Sté… FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> # ℹ 5 more variables: color_indexed <int>, color_tint <dbl>, font <chr>,
+#> # family <int>, scheme <chr>
To see all the available kinds of formats, use
str(formats)
.
The top five cells show that the results of formulas are available as
usual in the columns error
, logical
,
numeric
, date
, and character
.
xlsx_validation(examples)
#> # A tibble: 15 × 14
-#> sheet ref type opera…¹ formu…² formu…³ allow…⁴ show_…⁵ promp…⁶ promp…⁷ show_…⁸ error…⁹ error…˟ error…˟
-#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr> <lgl> <chr> <chr> <chr>
-#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE messag… messag… TRUE error … error … stop
-#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE NA NA TRUE NA NA warning
-#> 3 Sheet1 A110 date between 2017-0… 2017-0… TRUE TRUE NA NA TRUE NA NA stop
-#> 4 Sheet1 A111 time between 00:00:… 09:00:… TRUE TRUE NA NA TRUE NA NA stop
-#> 5 Sheet1 A112 textLe… between 0 9 TRUE TRUE NA NA TRUE NA NA stop
-#> 6 Sheet1 A114 whole notBet… 0 9 TRUE TRUE NA NA TRUE NA NA stop
-#> 7 Sheet1 A115,A121:A122 whole equal 0 NA TRUE TRUE NA NA TRUE NA NA stop
-#> 8 Sheet1 A116 whole notEqu… 0 NA TRUE TRUE NA NA TRUE NA NA stop
-#> 9 Sheet1 A117 whole greate… 0 NA TRUE TRUE NA NA TRUE NA NA stop
-#> 10 Sheet1 A119 whole greate… 0 NA TRUE TRUE NA NA TRUE NA NA stop
-#> 11 Sheet1 A120 whole lessTh… 0 NA TRUE TRUE NA NA TRUE NA NA stop
-#> 12 Sheet1 A118 whole lessTh… 0 NA TRUE TRUE NA NA TRUE NA NA stop
-#> 13 Sheet1 A107 decimal notBet… 0 9 FALSE FALSE NA NA FALSE NA NA stop
-#> 14 Sheet1 A113 custom NA A113<=… NA TRUE TRUE NA NA TRUE NA NA stop
-#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE NA NA TRUE NA NA inform…
-#> # … with abbreviated variable names ¹operator, ²formula1, ³formula2, ⁴allow_blank, ⁵show_input_message, ⁶prompt_title,
-#> # ⁷prompt_body, ⁸show_error_message, ⁹error_title, ˟error_body, ˟error_symbol
+#> sheet ref type operator formula1 formula2 allow_blank show_input_message prompt_title prompt_body
+#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr>
+#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE message tit… message bo…
+#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE NA NA
+#> 3 Sheet1 A110 date between 2017-01… 2017-01… TRUE TRUE NA NA
+#> 4 Sheet1 A111 time between 00:00:00 09:00:00 TRUE TRUE NA NA
+#> 5 Sheet1 A112 textLength between 0 9 TRUE TRUE NA NA
+#> 6 Sheet1 A114 whole notBetween 0 9 TRUE TRUE NA NA
+#> 7 Sheet1 A115,A121:A122 whole equal 0 NA TRUE TRUE NA NA
+#> 8 Sheet1 A116 whole notEqual 0 NA TRUE TRUE NA NA
+#> 9 Sheet1 A117 whole greaterTh… 0 NA TRUE TRUE NA NA
+#> 10 Sheet1 A119 whole greaterTh… 0 NA TRUE TRUE NA NA
+#> 11 Sheet1 A120 whole lessThanO… 0 NA TRUE TRUE NA NA
+#> 12 Sheet1 A118 whole lessThan 0 NA TRUE TRUE NA NA
+#> 13 Sheet1 A107 decimal notBetween 0 9 FALSE FALSE NA NA
+#> 14 Sheet1 A113 custom NA A113<=L… NA TRUE TRUE NA NA
+#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE NA NA
+#> # ℹ 4 more variables: show_error_message <lgl>, error_title <chr>, error_body <chr>, error_symbol <chr>
Tidyxl represents each cell as one row in a dataframe. Like this.
- +What can you do with tidy cells? The best places to start are:
The original spreadsheet has formatting applied to the cells. This can also be retrieved using tidyxl, with the xlsx_formats()
function.
Formatting is available by using the columns local_format_id
and style_format
as indexes into a separate list-of-lists structure. ‘Local’ formatting is the most common kind, applied to individual cells. ‘Style’ formatting is usually applied to blocks of cells, and defines several formats at once. Here is a screenshot of the styles buttons in Excel.
Formatting can be looked up as follows.
# Bold
diff --git a/pkgdown.yml b/pkgdown.yml
index fb7e238..6e015ff 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -5,7 +5,7 @@ articles:
data-validation-rules: data-validation-rules.html
smells: smells.html
tidyxl: tidyxl.html
-last_built: 2023-03-08T08:47Z
+last_built: 2023-04-12T11:36Z
urls:
reference: https://nacnudus.github.io/tidyxl/reference
article: https://nacnudus.github.io/tidyxl/articles
diff --git a/reference/figures/tidy_xlsx.gif b/reference/figures/tidy_xlsx.gif
new file mode 100644
index 0000000..5045ce8
Binary files /dev/null and b/reference/figures/tidy_xlsx.gif differ
diff --git a/reference/xlsx_cells.html b/reference/xlsx_cells.html
index 9f26121..d306e1e 100644
--- a/reference/xlsx_cells.html
+++ b/reference/xlsx_cells.html
@@ -2657,7 +2657,7 @@ Examples#> 1 Sheet1 A28 28 1 FALSE 0 character NA NA NA
#> 2 Sheet1 A32 32 1 FALSE 6 character NA NA NA
#> 3 Sheet1 A49 49 1 FALSE 12 character NA NA NA
-#> # … with 14 more variables: date <dttm>, character <chr>,
+#> # ℹ 14 more variables: date <dttm>, character <chr>,
#> # character_formatted <list>, formula <chr>, is_array <lgl>,
#> # formula_ref <chr>, formula_group <int>, comment <chr>, height <dbl>,
#> # width <dbl>, row_outline_level <dbl>, col_outline_level <dbl>,
@@ -2668,27 +2668,26 @@ Examplesxlsx_cells(examples)$character_formatted[77]
#> [[1]]
#> # A tibble: 16 × 14
-#> character bold italic under…¹ strike vertA…² size color…³ color…⁴ color…⁵
-#> <chr> <lgl> <lgl> <chr> <lgl> <chr> <dbl> <chr> <int> <int>
-#> 1 "in-cell" FALSE FALSE NA FALSE NA 0 NA NA NA
-#> 2 "bold" TRUE FALSE NA FALSE NA 0 FF0000… 2 NA
-#> 3 "italic" FALSE TRUE NA FALSE NA 0 FF0000… 2 NA
-#> 4 "underline" FALSE FALSE single FALSE NA 0 FF0000… 2 NA
-#> 5 "underline… FALSE FALSE double FALSE NA 0 FF0000… 2 NA
-#> 6 "singleacc… FALSE FALSE single… FALSE NA 0 FF0000… 2 NA
-#> 7 "doubleacc… FALSE FALSE double… FALSE NA 0 FF0000… 2 NA
-#> 8 "strikethr… FALSE FALSE NA TRUE NA 0 FF0000… 2 NA
-#> 9 "subscript" FALSE FALSE NA FALSE subscr… 0 FF0000… 2 NA
-#> 10 "superscri… FALSE FALSE NA FALSE supers… 0 FF0000… 2 NA
-#> 11 "red" FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> 12 "theme" FALSE FALSE NA FALSE NA 0 FFC050… 6 NA
-#> 13 "tint" FALSE FALSE NA FALSE NA 0 FFC050… 6 NA
-#> 14 "size" FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> 15 "arial" FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> 16 "UTF8Stéph… FALSE FALSE NA FALSE NA 0 FFFF00… NA NA
-#> # … with 4 more variables: color_tint <dbl>, font <chr>, family <int>,
-#> # scheme <chr>, and abbreviated variable names ¹underline, ²vertAlign,
-#> # ³color_rgb, ⁴color_theme, ⁵color_indexed
+#> character bold italic underline strike vertAlign size color_rgb color_theme
+#> <chr> <lgl> <lgl> <chr> <lgl> <chr> <dbl> <chr> <int>
+#> 1 "in-cell" FALSE FALSE NA FALSE NA 0 NA NA
+#> 2 "bold" TRUE FALSE NA FALSE NA 0 FF000000 2
+#> 3 "italic" FALSE TRUE NA FALSE NA 0 FF000000 2
+#> 4 "underli… FALSE FALSE single FALSE NA 0 FF000000 2
+#> 5 "underli… FALSE FALSE double FALSE NA 0 FF000000 2
+#> 6 "singlea… FALSE FALSE singleAc… FALSE NA 0 FF000000 2
+#> 7 "doublea… FALSE FALSE doubleAc… FALSE NA 0 FF000000 2
+#> 8 "striket… FALSE FALSE NA TRUE NA 0 FF000000 2
+#> 9 "subscri… FALSE FALSE NA FALSE subscript 0 FF000000 2
+#> 10 "supersc… FALSE FALSE NA FALSE superscr… 0 FF000000 2
+#> 11 "red" FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> 12 "theme" FALSE FALSE NA FALSE NA 0 FFC0504D 6
+#> 13 "tint" FALSE FALSE NA FALSE NA 0 FFC0504D 6
+#> 14 "size" FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> 15 "arial" FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> 16 "UTF8Sté… FALSE FALSE NA FALSE NA 0 FFFF0000 NA
+#> # ℹ 5 more variables: color_indexed <int>, color_tint <dbl>, font <chr>,
+#> # family <int>, scheme <chr>
#>
examples <- system.file("extdata/examples.xlsx", package = "tidyxl")
xlsx_validation(examples)
#> # A tibble: 15 × 14
-#> sheet ref type opera…¹ formu…² formu…³ allow…⁴ show_…⁵ promp…⁶ promp…⁷
-#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr>
-#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE messag… messag…
-#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE NA NA
-#> 3 Sheet1 A110 date between 2017-0… 2017-0… TRUE TRUE NA NA
-#> 4 Sheet1 A111 time between 00:00:… 09:00:… TRUE TRUE NA NA
-#> 5 Sheet1 A112 text… between 0 9 TRUE TRUE NA NA
-#> 6 Sheet1 A114 whole notBet… 0 9 TRUE TRUE NA NA
-#> 7 Sheet1 A115,A1… whole equal 0 NA TRUE TRUE NA NA
-#> 8 Sheet1 A116 whole notEqu… 0 NA TRUE TRUE NA NA
-#> 9 Sheet1 A117 whole greate… 0 NA TRUE TRUE NA NA
-#> 10 Sheet1 A119 whole greate… 0 NA TRUE TRUE NA NA
-#> 11 Sheet1 A120 whole lessTh… 0 NA TRUE TRUE NA NA
-#> 12 Sheet1 A118 whole lessTh… 0 NA TRUE TRUE NA NA
-#> 13 Sheet1 A107 deci… notBet… 0 9 FALSE FALSE NA NA
-#> 14 Sheet1 A113 cust… NA A113<=… NA TRUE TRUE NA NA
-#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE NA NA
-#> # … with 4 more variables: show_error_message <lgl>, error_title <chr>,
-#> # error_body <chr>, error_symbol <chr>, and abbreviated variable names
-#> # ¹operator, ²formula1, ³formula2, ⁴allow_blank, ⁵show_input_message,
-#> # ⁶prompt_title, ⁷prompt_body
+#> sheet ref type operator formula1 formula2 allow_blank show_input_message
+#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl>
+#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE
+#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE
+#> 3 Sheet1 A110 date between 2017-01… 2017-01… TRUE TRUE
+#> 4 Sheet1 A111 time between 00:00:00 09:00:00 TRUE TRUE
+#> 5 Sheet1 A112 text… between 0 9 TRUE TRUE
+#> 6 Sheet1 A114 whole notBetw… 0 9 TRUE TRUE
+#> 7 Sheet1 A115,… whole equal 0 NA TRUE TRUE
+#> 8 Sheet1 A116 whole notEqual 0 NA TRUE TRUE
+#> 9 Sheet1 A117 whole greater… 0 NA TRUE TRUE
+#> 10 Sheet1 A119 whole greater… 0 NA TRUE TRUE
+#> 11 Sheet1 A120 whole lessTha… 0 NA TRUE TRUE
+#> 12 Sheet1 A118 whole lessThan 0 NA TRUE TRUE
+#> 13 Sheet1 A107 deci… notBetw… 0 9 FALSE FALSE
+#> 14 Sheet1 A113 cust… NA A113<=L… NA TRUE TRUE
+#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE
+#> # ℹ 6 more variables: prompt_title <chr>, prompt_body <chr>,
+#> # show_error_message <lgl>, error_title <chr>, error_body <chr>,
+#> # error_symbol <chr>
xlsx_validation(examples, 1)
#> # A tibble: 15 × 14
-#> sheet ref type opera…¹ formu…² formu…³ allow…⁴ show_…⁵ promp…⁶ promp…⁷
-#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr>
-#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE messag… messag…
-#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE NA NA
-#> 3 Sheet1 A110 date between 2017-0… 2017-0… TRUE TRUE NA NA
-#> 4 Sheet1 A111 time between 00:00:… 09:00:… TRUE TRUE NA NA
-#> 5 Sheet1 A112 text… between 0 9 TRUE TRUE NA NA
-#> 6 Sheet1 A114 whole notBet… 0 9 TRUE TRUE NA NA
-#> 7 Sheet1 A115,A1… whole equal 0 NA TRUE TRUE NA NA
-#> 8 Sheet1 A116 whole notEqu… 0 NA TRUE TRUE NA NA
-#> 9 Sheet1 A117 whole greate… 0 NA TRUE TRUE NA NA
-#> 10 Sheet1 A119 whole greate… 0 NA TRUE TRUE NA NA
-#> 11 Sheet1 A120 whole lessTh… 0 NA TRUE TRUE NA NA
-#> 12 Sheet1 A118 whole lessTh… 0 NA TRUE TRUE NA NA
-#> 13 Sheet1 A107 deci… notBet… 0 9 FALSE FALSE NA NA
-#> 14 Sheet1 A113 cust… NA A113<=… NA TRUE TRUE NA NA
-#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE NA NA
-#> # … with 4 more variables: show_error_message <lgl>, error_title <chr>,
-#> # error_body <chr>, error_symbol <chr>, and abbreviated variable names
-#> # ¹operator, ²formula1, ³formula2, ⁴allow_blank, ⁵show_input_message,
-#> # ⁶prompt_title, ⁷prompt_body
+#> sheet ref type operator formula1 formula2 allow_blank show_input_message
+#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl>
+#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE
+#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE
+#> 3 Sheet1 A110 date between 2017-01… 2017-01… TRUE TRUE
+#> 4 Sheet1 A111 time between 00:00:00 09:00:00 TRUE TRUE
+#> 5 Sheet1 A112 text… between 0 9 TRUE TRUE
+#> 6 Sheet1 A114 whole notBetw… 0 9 TRUE TRUE
+#> 7 Sheet1 A115,… whole equal 0 NA TRUE TRUE
+#> 8 Sheet1 A116 whole notEqual 0 NA TRUE TRUE
+#> 9 Sheet1 A117 whole greater… 0 NA TRUE TRUE
+#> 10 Sheet1 A119 whole greater… 0 NA TRUE TRUE
+#> 11 Sheet1 A120 whole lessTha… 0 NA TRUE TRUE
+#> 12 Sheet1 A118 whole lessThan 0 NA TRUE TRUE
+#> 13 Sheet1 A107 deci… notBetw… 0 9 FALSE FALSE
+#> 14 Sheet1 A113 cust… NA A113<=L… NA TRUE TRUE
+#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE
+#> # ℹ 6 more variables: prompt_title <chr>, prompt_body <chr>,
+#> # show_error_message <lgl>, error_title <chr>, error_body <chr>,
+#> # error_symbol <chr>
xlsx_validation(examples, "Sheet1")
#> # A tibble: 15 × 14
-#> sheet ref type opera…¹ formu…² formu…³ allow…⁴ show_…⁵ promp…⁶ promp…⁷
-#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr>
-#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE messag… messag…
-#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE NA NA
-#> 3 Sheet1 A110 date between 2017-0… 2017-0… TRUE TRUE NA NA
-#> 4 Sheet1 A111 time between 00:00:… 09:00:… TRUE TRUE NA NA
-#> 5 Sheet1 A112 text… between 0 9 TRUE TRUE NA NA
-#> 6 Sheet1 A114 whole notBet… 0 9 TRUE TRUE NA NA
-#> 7 Sheet1 A115,A1… whole equal 0 NA TRUE TRUE NA NA
-#> 8 Sheet1 A116 whole notEqu… 0 NA TRUE TRUE NA NA
-#> 9 Sheet1 A117 whole greate… 0 NA TRUE TRUE NA NA
-#> 10 Sheet1 A119 whole greate… 0 NA TRUE TRUE NA NA
-#> 11 Sheet1 A120 whole lessTh… 0 NA TRUE TRUE NA NA
-#> 12 Sheet1 A118 whole lessTh… 0 NA TRUE TRUE NA NA
-#> 13 Sheet1 A107 deci… notBet… 0 9 FALSE FALSE NA NA
-#> 14 Sheet1 A113 cust… NA A113<=… NA TRUE TRUE NA NA
-#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE NA NA
-#> # … with 4 more variables: show_error_message <lgl>, error_title <chr>,
-#> # error_body <chr>, error_symbol <chr>, and abbreviated variable names
-#> # ¹operator, ²formula1, ³formula2, ⁴allow_blank, ⁵show_input_message,
-#> # ⁶prompt_title, ⁷prompt_body
+#> sheet ref type operator formula1 formula2 allow_blank show_input_message
+#> <chr> <chr> <chr> <chr> <chr> <chr> <lgl> <lgl>
+#> 1 Sheet1 A106 whole between 0 9 TRUE TRUE
+#> 2 Sheet1 A108 list NA $B$108 NA TRUE TRUE
+#> 3 Sheet1 A110 date between 2017-01… 2017-01… TRUE TRUE
+#> 4 Sheet1 A111 time between 00:00:00 09:00:00 TRUE TRUE
+#> 5 Sheet1 A112 text… between 0 9 TRUE TRUE
+#> 6 Sheet1 A114 whole notBetw… 0 9 TRUE TRUE
+#> 7 Sheet1 A115,… whole equal 0 NA TRUE TRUE
+#> 8 Sheet1 A116 whole notEqual 0 NA TRUE TRUE
+#> 9 Sheet1 A117 whole greater… 0 NA TRUE TRUE
+#> 10 Sheet1 A119 whole greater… 0 NA TRUE TRUE
+#> 11 Sheet1 A120 whole lessTha… 0 NA TRUE TRUE
+#> 12 Sheet1 A118 whole lessThan 0 NA TRUE TRUE
+#> 13 Sheet1 A107 deci… notBetw… 0 9 FALSE FALSE
+#> 14 Sheet1 A113 cust… NA A113<=L… NA TRUE TRUE
+#> 15 Sheet1 A109 list NA $B$108 NA TRUE TRUE
+#> # ℹ 6 more variables: prompt_title <chr>, prompt_body <chr>,
+#> # show_error_message <lgl>, error_title <chr>, error_body <chr>,
+#> # error_symbol <chr>