Чтение Excel: ошибка оценки с zip-файлом "..file.xlsx" не открывается

Я использую R с пакетом readxl. Я пытаюсь импортировать файл Excel с помощью следующей команды:

library(readxl)
city_codes <- read_excel("./data/file.xlsx", sheet = "city_codes")

Он говорит, что это zip-файл и его нельзя открыть:

Error in sheets_fun(path) : 
Evaluation error: zip file './data/file.xlsx' cannot be opened.

Любые идеи?


person canpoint    schedule 18.06.2017    source источник
comment
readxl кажется, что для анализа требуется абсолютный путь к файлу Excel.   -  person canpoint    schedule 19.06.2017


Ответы (15)


Сообщение об ошибке - это забавный способ readxl сказать «файл не найден». Эта точная строка кода дает мне ту же ошибку, а файл для меня даже не существует.

Примечание. Я использую версию 1.0.0 из readxl

person lebelinoz    schedule 18.06.2017
comment
ровно путь пробем. Когда я переместил файл под D: /, то работал. - person canpoint; 19.06.2017
comment
Это сообщение также появится, если файл открыт в Excel. - person vmb100; 19.02.2018
comment
Проверка полного пути к файлу не решила эту проблему - я читал несколько файлов из одного и того же каталога, и только некоторые из них получали эту ошибку. file.exists() верно для всех файлов, даже для тех, которые выдавали сообщение об ошибке. Обновление до версии 1.1.0 устранило ошибку для меня. Это также устранило ошибку, даже если файл XLSX все еще был открыт, как ранее прокомментировал vmb100. - person sbha; 01.06.2018
comment
В версии 1.1.0, когда файл не найден, появляется сообщение об ошибке Ошибка: path не существует: ‘some / path / name.xlsx’, а ошибка OP возникает, когда файл открыт в Excel. - person Melkor.cz; 14.03.2019
comment
Это сообщение также появится, если файл Excel зашифрован и для открытия требуется пароль. См. Обсуждение проблемы здесь. - person Stefan Avey; 04.08.2020
comment
У меня было такое же сообщение об ошибке. Это было исправлено, когда я удалил неанглийский специальный символ в имени файла. - person NCC1701; 11.01.2021
comment
Мой файл Excel был защищен паролем. Удалено на первом этапе, и это сработало: passfab.com/excel/excel- password-remove.html - person sbanders; 13.01.2021

У меня была эта ошибка, но для меня это было просто то, что у меня был открыт лист в Excel, когда я пытался прочитать его в R. Я предполагаю, что пакет ошибочно воспринимает его как zip-файл, когда он пытается прочитать его, в то время как Excel имеет частичное владение из него (и это блокирует чтение).

person DHW    schedule 28.08.2018
comment
Спасибо за этот ответ. Для меня это была точно такая же проблема - person alexpoint; 31.08.2018
comment
xlsx файлы на самом деле являются zip-файлами - person anotherfred; 06.12.2018
comment
@anotherfred Ну, тогда это все объясняет. - person DHW; 12.12.2018

Вы можете указать путь к файлу, только если он вложен в рабочий каталог. Например: если ваш рабочий каталог - MyWD, и в нем есть папка с именем MyData и другая папка в MyData с именем MyNestedData и, наконец, myExcelFile.xlsx

read_excel("MyData/MyNestedData/myExcelFile.xlsx",sheet = "Sheet2") #will work
read_excel("MyWD/MyData/MyNestedData/myExcelFile.xlsx",sheet = "Sheet2") #will not work
person Julio Alejandro Di Rienzo    schedule 28.06.2018
comment
Спасибо, это решило проблему для меня - person Falnésio; 29.07.2021

Если ваш рабочий лист Excel защищен паролем, read_excel не сможет получить к нему доступ и выдаст вам эту ошибку. Если ему нужна защита, я бы предложил p / w защитить папку, в которой он находится, а затем снять защиту с рабочего листа.

person Rich Rees    schedule 22.11.2018

Для меня сообщение об ошибке Evaluation error: zip file error также появилось, когда электронная таблица Excel все еще открывалась в MSExcel.

person Jonas Engelhardt    schedule 27.10.2020

Это может произойти, если вы забудете сделать следующее, прежде чем использовать функцию read_excel.

setwd("C:\\map\\map_in_map\\map_in_map_in_map_where_the_file_is")
person Stef Vandeweyer    schedule 19.10.2017

Вы можете попробовать указать полный путь вместо ./path/to/file

person WANNISA RITMAHAN    schedule 19.04.2018

Попробуйте изменить ограничения файлов, если вы работаете на компьютере компании. Это помогло мне решить эту проблему.

person Aivaras Slivikas    schedule 03.02.2020

Попробуйте сделать новый файл. нажмите «Сохранить как» и введите новое имя. Снова запустите свой код. у меня это сработало :)

person jun ki    schedule 29.02.2020

Вы также можете получить эту ошибку, если используете неправильную функцию чтения.

Например, read_xlsx("file.xls" ...) выдаст ошибку.

person ricardo    schedule 29.04.2020

Хотя решение уже было дано, но для документации я оставлю свою ситуацию здесь:

Я столкнулся с той же проблемой и не мог понять почему. Похоже, мой файл excel закрылся с ошибкой или чем-то подобным. Мне пришлось открыть файл Excel и снова сохранить его. Когда я запускал R, все работало гладко.

person Mig    schedule 07.09.2020

Проблема заключалась в том, что в моем рабочем каталоге были скрытые файлы. Я скопировал их на улицу и исключил все каталоги. Теперь он работает, когда я запускаю код.

person Bruno Gomes    schedule 18.11.2020

В моем случае xlsx был создан с помощью Excel 2007, что и вызвало эту проблему. Файлы Xlsx из более новых версий Excel работают.

person Ljupcho Naumov    schedule 12.01.2021

В моем случае файл не был виден в каталоге, хотя я его удалил. Мне пришлось искать файл с помощью программного обеспечения под названием Everyting, и я удалил его. После этого все заработало.

person Baptista Zunguze    schedule 14.04.2021

Что касается меня, я загружал файл с Google Диска во временный файл с расширением .xlsx ... Я понял, что файл на Google Диске был .xls, поэтому я изменил его на это, и он сработал. Впрочем, довольно редкая ситуация.

person PulpDood    schedule 02.07.2021