openxlsx writeData() и saveWorkbook() создают поврежденный файл Excel

#excel #corruption #openxlsx

Вопрос:

Когда я использую openxlsx для сохранения кадра данных, результирующий файл в конечном итоге повреждается.

 library(openxlsx)

# Making dummy dataframe
Name <- c("Jon", "Bill", "Maria", "Ben", "Tina")
Age <- c(23, 41, 32, 58, 26)

df <- data.frame(Name, Age)

# Creating output file 
output_path <- "check_corruption.xlsx"
wb <- createWorkbook(output_path) 
addWorksheet(wb, "Sheet1")

# Write unformatted data
writeData(wb, sheet=1, df)

# Save fully formatted output
saveWorkbook(wb, output_path, overwrite=TRUE)
 

Когда я пытаюсь открыть check_corruption.xlsx Я получаю ошибку

«Мы обнаружили проблему с некоторым контентом в ‘check_corruption.xlsx». Вы хотите, чтобы мы постарались восстановить как можно больше?».

Если я восстановлю файл, то вывод будет выглядеть нормально, но я не понимаю, в чем причина проблемы в первую очередь.

Ответ №1:

Оказывается, это было связано с символом «amp;» в пути вывода файла, который не поддерживался openxlsx. Я открыл здесь проблему, которая была решена, поэтому, если у вас возникла эта проблема, обновите установку openxlsx до основной ветки github.