次のコードを実行したところエラーが発生しました。
調べてみたのですがopenpyxlが読めない文字があるようです。
このエラーを回避する方法はありますでしょうか?
※取り出す情報は重要の為、文字の置換や削除やignore以外の方法を教えていただけると幸いです。
また、書き込み対象のExcelは既存の物となります。
import re import openpyxl as px import glob import linecache with open('extract.txt', encoding='shift_jis') as f: l = f.read() # print(l) pattern=""'Name: .*\n([\s\S]*?) for m in re.finditer(pattern, l, re.MULTILINE): string_newline_removed = "".join(m.group(1).split("\n")) print(string_newline_removed) sheet.cell(row=f,column=5).value =(string_newline_removed) f+=1 wb.save("Format.xlsx") コード
エラー
openpyxl.utils.exceptions.IllegalCharacterError
> 調べてみたのですがopenpyxlが読めない文字があるようです。
情報元は何でしょうか? また、今回読み込めない文字は何でしょうか?
tracebackを省略してしまっているので、そもそもどこでエラーが起きたのか(load_workbook? cell? value=? save?)すら回答者側に伝わってません。
https://teratail.com/help/question-tips#questionTips3-4-2
> 表示されたエラーメッセージをそのままコピー&ペーストしましょう。自分でタイプしなおしたり、自分で解釈・要約しようとしてはいけません。
> 大事な部分が抜け落ちたり情報が違うものになってしまう可能性があるからです。
の"べからず"をしてしまっています。
このエラーメッセージで検索すると、書き込み時のエラーであるように書かれていますので、読み込み時なのかはエラーの詳細を記載して示していただくとよいと思います。いずれにしても、検索結果によると、openpyxlではないエクセルライブラリに変えることで、解決の可能性がありそうです。
toast-uzさん
ご回答いただきありがとうございます。
おっしゃる通りライブラリーの問題でした。
ExcelへのWriterをxlwtに変更したところ問題なく書き出す事ができました。
よかったです。では、ご自身で回答記載して、自己解決でクローズしちゃってください。
回答2件
あなたの回答
tips
プレビュー