Не удается сохранить файл Excel в Rstudio после привязки данных - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь сохранить книгу Excel из Rstudio, в которую были добавлены новые данные. Я сохраняю их с помощью библиотеки saveworkbook из openxlsx, но выдает следующую ошибку:

Ошибка в zip_internal (zipfile, файлы, recurse ,ression_level, append = FALSE,: ошибка zip: Cannot add file [Content_Types]. xmlto archive file383c1b9b6cc7.xlsx`` в файле zip.c:394

Для получения дополнительной информации о файле Excel его размер составляет около 28Mb.

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

удалена часть /xl/comments1.xml часть с ошибкой xml. (комментарии) ошибка загрузки

Я не знаю, было ли это исправлением Excel 2007, вызвавшим ошибку, которую мне дает Rstudio, zip_internal.

Также файл использует формулы Excel для извлечения информации о других страницах другим.

Способствует ли связь между информацией на разных страницах эта ошибка?

Ниже приведен код того, как я реализую программу.

library(pdftools)
library(dplyr)
library(openxlsx)
#For smartbind
library(gtools)

#load exel file
old_data<- readWorkbook("Recon Metro Fuels JR B VN Ene 2019 V2.xlsx", sheet = "Raw BAC VN CON FIREFOX");

#bind the new data into old data
new_data<-smartbind(old_data, pdf_refined);

# Write updated data frame to existing worksheet
wb<- loadWorkbook("Recon Metro Fuels JR B VN Ene 2019 V2.xlsx")
writeData(wb, sheet = "Raw BAC VN CON FIREFOX", new_data)

# Save file (with new name for testing purposes)
saveWorkbook(wb, "Recon Metro Fuels JR B VN Ene 2019 V2.xlsx", overwrite = TRUE)
  • В конце wb заканчивается как object containing active binding.
  • При запуске head(new_data) и attributes(new_data) после применения data.frame(new_data) это дает:
Column class mismatch for 'Monto.Original'. Converting column to class 'character'.Column class mismatch for 'Monto.en.Banco'. Converting column to class 'character'.Column class mismatch for 'Fecha'. Converting column to class 'character'.Column class mismatch for 'Monto.Original'. Converting column to class 'character'.Column class mismatch for 'Monto.en.Banco'. Converting column to class 'character'.$names
[1] "X1"             "Fecha"          "Monto.Original" "Monto.en.Banco" "X5"            

$row.names
   [1] "1:1"    "1:2"    "1:3"    "1:4"    "1:5"    "1:6"    "1:7"    "1:8"    "1:9"    "1:10"  
  [11] "1:11"   "1:12"   "1:13"   "1:14"   "1:15"   "1:16"   "1:17"   "1:18"   "1:19"   "1:20"  
  [21] "1:21"   "1:22"   "1:23"   "1:24"   "1:25"   "1:26"   "1:27"   "1:28"   "1:29"   "1:30"  
  [31] "1:31"   "1:32"   "1:33"   "1:34"   "1:35"   "1:36"   "1:37"   "1:38"   "1:39"   "1:40"  
  [41] "1:41"   "1:42"   "1:43"   "1:44"   "1:45"   "1:46"   "1:47"   "1:48"   "1:49"   "1:50"  
  [51] "1:51"   "1:52"   "1:53"   "1:54"   "1:55"   "1:56"   "1:57"   "1:58"   "1:59"   "1:60"  
  [61] "1:61"   "1:62"   "1:63"   "1:64"   "1:65"   "1:66"   "1:67"   "1:68"   "1:69"   "1:70"  
  [71] "1:71"   "1:72"   "1:73"   "1:74"   "1:75"   "1:76"   "1:77"   "1:78"   "1:79"   "1:80"  
  [81] "1:81"   "1:82"   "1:83"   "1:84"   "1:85"   "1:86"   "1:87"   "1:88"   "1:89"   "1:90"
[ reached getOption("max.print") -- omitted 802 entries ]

$class
[1] "data.frame"  

1 Ответ

0 голосов
/ 19 февраля 2020

К сожалению, я столкнулся с той же ошибкой и пока не могу решить ее для своей машины. ( моя проблема github )

В некоторых других случаях функция openxlsx :: saveWorkbook () не работала должным образом из-за отсутствия временной переменной в системной среде. Поэтому, возможно, вам удастся использовать Sys.setenv () для установки переменной TMP. Посмотрите здесь , чтобы узнать о проблеме github.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...