У меня есть следующий код Python для записи обработанных слов в файл Excel. Слова около 7729
From openpyxl import *
book=Workbook ()
sheet=book.active
sheet.title = "test"
for x in range (7729):
sheet.cell (row=1,column=x+1).value=x
book.save ('test.xlsx')
Вот так выглядит код, который я использовал, но когда я его запускаю, появляется сообщение об ошибке
openpyxl.utils.exceptions.IllegalCharacterError
Я впервые использую этот модуль, буду признателен за любую помощь.
Извините, я забыл исправить значение
можешь поделится итогами этого print (sys.getdefaultencoding())?
кодировка utf-8
пожалуйста, добавьте свою версию python, это поможет людям воспроизвести проблему.
Я использую Python 3.6.
exception openpyxl.utils.exceptions.IllegalCharacterError Причина: представленные данные нельзя использовать непосредственно в файлах Excel. Его нужно удалить или сбежать. так что проблема в том, как с вашими данными, то есть значением ur xДанные представляют собой строку, а именно набор английских букв.
это должно быть проблемой, вам нужно либо избежать данных, либо попытаться принудительно закодировать их с помощью utf-8 и игнорировать ошибки, если вы можете жить без непечатаемых символов в своих данных






Вы пропустили добавить значение ячейки sheet.cell (row=1,column=x+1).value =
Попробуйте вот так
from openpyxl import *
book = Workbook ()
sheet = book.active
sheet.title = "test"
for x in range (7):
sheet.cell (row=1,column=x+1).value = "Hello"
book.save ('test.xlsx')
Попробуй это : Этот код у меня работает.
from openpyxl import *
book=Workbook ()
sheet=book.active
sheet.title = "test"
x = 0
with open("temp.txt") as myfile :
text = myfile.readline()
while text ! = "":
sheet.cell (row=1,column=x+1).value=str(text).encode("ascii",errors = "ignore")
x+=1
text = myfile.readline()
book.save ('test.xlsx')
В реальной программе x - это строка, что мне делать для этого, если я должен удалить функцию int и использовать приведенную выше
Большое спасибо, но, похоже, это не работает. Если это помогает, когда мне нравится, работает лист ['A1'] = 1 или sheet ['A1'] = 'hi'.
могу я увидеть ваши образцы данных, пожалуйста? и они каким образом вы читаете эти данные из источника?
«Китаабота», «увиделааа», «дауус», и да, я читаю это из источника, а источником является текстовый файл.
Могу ли я увидеть код, который вы используете для чтения текстового файла, и точную одну строку для текстового файла. это поможет мне воспроизвести проблему
Позвольте нам продолжить обсуждение в чате.
Я столкнулся с аналогичной проблемой и обнаружил, что это из-за символа \ xa1, который является шестнадцатеричным значением ascii 26 (SUB). Openpyxl не позволяет писать такие символы (код ascii <32). Я попробовал библиотеку xlsxwriter без каких-либо проблем, она записала этот символ в файле xlsx.
каково ваше содержимое
.value=?