Проблемы с чтением значений в виде формулы вместо данных - PullRequest
0 голосов
/ 17 сентября 2018

Когда я хочу прочитать мой Excel:

from openpyxl import load_workbook
import numpy as np

"read Excel"
wb = load_workbook('Libro1.xlsx')
hoja_1 = wb.get_sheet_by_name('1')

x = np.zeros(hoja_1.max_row)
y = np.zeros(hoja_1.max_row)

for i in range(0, hoja_1.max_row):
    x[i] = hoja_1.cell(row = i + 1, column = 1).value
    y[i] = hoja_1.cell(row = i + 1, column = 2).value

print(x)
print(y)

Я получаю сообщение об ошибке:

x[i] = hoja_1.cell(row = i + 1, column = 1).value 

ValueError : не удалось преобразовать строкуплавать: '= A1 + 1'

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

х и у - объект. Преобразуйте это в список перед присвоением значений.

Попробуйте это:

x = список (np.zeros (hoja_1.max_row)) y = список (np.zeros (hoja_1.max_row))

0 голосов
/ 17 сентября 2018

Одной, но довольно редкой возможностью является то, что ячейка в 'Libro1.xlsx' помечена как текстовый формат, что препятствует ее повторному вычислению.

Когда вы открываете файл Excel, вы видите значение =A1+1 в пересчете или в виде текста? В любом случае примените простейшее числовое форматирование ко всем ячейкам в файле Excel (выберите ячейки и выберите формат), а также исключите любое условное форматирование.

Подобная проблема описана здесь: https://bitbucket.org/openpyxl/openpyxl/issues/699/valueerror-could-not-convert-string-to. Убедитесь, что ваша openpyxl версия обновлена.

...