是否有用于将原始输入转换为 .xlsx 文件的 R 函数?
is there an R function for converting a raw input into an .xlsx file?
所以对于上下文,我正在尝试使用 gpg 包解密 xlsx 文件。如果我解密 as_text = TRUE 我会收到一条错误消息,并在字符串中嵌入 nul。
writexl::write_xlsx(x = data.frame(x = 1:2, y = 1:2),
path = "testtemp/test_1/test2.xlsx")
encrypted_xlsx <- gpg::gpg_encrypt(
data = list.files("testtemp/test_1/",
full.names = TRUE,
pattern = "xlsx"
),
receiver = "mypublickey"
)
writeLines(
text = encrypted_xlsx,
con = "testtemp/test_1/test2.xlsx.gpg"
)
gpg::gpg_import("myprivatekey")
decrypted_file <- gpg::gpg_decrypt(
data = "testtemp/test_1/test2.xlsx.gpg",
verify = FALSE,
as_text = FALSE
)
xl <- readxl::read_xlsx(path = rawConnection(decrypted_file))
我在最后一行中尝试的方法不起作用,但希望传达我正在努力实现的目标。
平台x86_64-w64-mingw32
拱门 x86_64
osmingw32
系统 x86_64, mingw32
状态
专业 4
轻微 0.2
2020 年
06 月
第 22 天
svn 版本 78730
语言 R
version.stringR 版本 4.0.2 (2020-06-22)
昵称再起飞
解决方案是将 gpg:gpg_decrypt 的解密输出写入文件。
filename = tempfile(fileext = '.xlsx') #create temp file with xlsx suffix
writeBin(decrypted_file, filename) #write data to file
xl <- readxl::read_xlsx(path = filename)
print(xl)
# A tibble: 2 x 2
x y
<dbl> <dbl>
1 1 1
2 2 2
所以对于上下文,我正在尝试使用 gpg 包解密 xlsx 文件。如果我解密 as_text = TRUE 我会收到一条错误消息,并在字符串中嵌入 nul。
writexl::write_xlsx(x = data.frame(x = 1:2, y = 1:2),
path = "testtemp/test_1/test2.xlsx")
encrypted_xlsx <- gpg::gpg_encrypt(
data = list.files("testtemp/test_1/",
full.names = TRUE,
pattern = "xlsx"
),
receiver = "mypublickey"
)
writeLines(
text = encrypted_xlsx,
con = "testtemp/test_1/test2.xlsx.gpg"
)
gpg::gpg_import("myprivatekey")
decrypted_file <- gpg::gpg_decrypt(
data = "testtemp/test_1/test2.xlsx.gpg",
verify = FALSE,
as_text = FALSE
)
xl <- readxl::read_xlsx(path = rawConnection(decrypted_file))
我在最后一行中尝试的方法不起作用,但希望传达我正在努力实现的目标。
平台x86_64-w64-mingw32
拱门 x86_64
osmingw32
系统 x86_64, mingw32
状态
专业 4
轻微 0.2
2020 年
06 月
第 22 天
svn 版本 78730
语言 R
version.stringR 版本 4.0.2 (2020-06-22)
昵称再起飞
解决方案是将 gpg:gpg_decrypt 的解密输出写入文件。
filename = tempfile(fileext = '.xlsx') #create temp file with xlsx suffix
writeBin(decrypted_file, filename) #write data to file
xl <- readxl::read_xlsx(path = filename)
print(xl)
# A tibble: 2 x 2
x y
<dbl> <dbl>
1 1 1
2 2 2