セル値に基づいてExcelファイルに条件付き書式を適用するコードがいくつかあります。私は、 "含む"という基準を使って "テキスト"タイプに基づいて同じ範囲にいくつかを追加したいと思っていました。これらの列は日付の文字列で埋められ、 "2017"を含む日付に書式を適用したかったのです。xlsxライターでの条件付き書式設定で "text:containing"という壊れたファイルが生成される
ここで全体のブロックだ、と私はテキストの条件付き書式をコメントアウトした場合には、セルの条件付き書式で正常に動作します:
mtbook = mytrials_writer.book
header_format = mtbook.add_format({'bg_color': '#7e98f7','bold': True})
notFoundFormat = sitebook.add_format({'bg_color':'red'})
notExpFormat = sitebook.add_format({'bg_color':'silver'})
foundFormat = sitebook.add_format({'bg_color':'lime'})
for worksheet in mtbook.worksheets():
# for every column
for i in range(len(subreportCols)):
# write the value of the first cell in the column to the first cell of that column
worksheet.write(0, i, subreportCols[i], header_format)
worksheet.set_column(0, 50, 17)
worksheet.set_row(0, 25, None)
worksheet.conditional_format('A2:Z100', {'type':'text', 'criteria': 'containing', 'value':'2017','format':notFoundFormat})
#worksheet.conditional_format('A2:Z100', {'type':'text', 'criteria': 'containing', 'value':'"2016-"','format':foundFormat})
#worksheet.conditional_format('A2:Z100', {'type':'text', 'criteria': 'containing', 'value':'"2015-"','format':foundFormat})
worksheet.conditional_format('A2:Z100', {'type':'cell', 'criteria': '==', 'value':'"Miss/Inc"','format':notFoundFormat})
worksheet.conditional_format('A2:Z100', {'type':'cell', 'criteria': '==', 'value':'"NotExp."','format':notExpFormat})
私は、次のような行を有効にすると、コードが実行されます、Excelのファイルが開き、修復したいのかどうか尋ねます。破損しているためです。私が「はい」と答えると、書類のどこにでも書式設定はありません。
worksheet.conditional_format('A2:Z100', {'type':'text', 'criteria': 'containing', 'value':'2017','format':notFoundFormat})
エラーは、「我々は、ファイル内の一部のコンテンツに問題があることを発見しました。あなたは私たちができる限り多くを試してみて、回復したいですか?あなたはこのワークブックのソースを信頼する場合は、[はい]をクリックします」と言う
これは返されるエラーログです:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error255040_01.xml</logFileName><summary>Errors were detected in file 'C:\Users\mgancsos\Documents\Data Sources\Python\Testing\TQ_MyTrials_upload.xlsx'</summary><repairedRecords><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet1.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet2.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet3.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet4.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet5.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet6.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet7.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet8.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet9.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet10.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet11.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet12.xml part</repairedRecord><repairedRecord>Repaired Records: Conditional formatting from /xl/worksheets/sheet13.xml part</repairedRecord><repairedRecord>Repaired Records: C</repairedRecord><repairedRecord>Repaired Records: C</repairedRecord><repairedRecord>Repaired Records: C</repairedRecord><repairedRecord xml:space="preserve">Repaired Records: </repairedRecord></repairedRecords></recoveryLog>
ありがとうございました!
「セル」が動作する場合は「テキスト」を使用する理由がわかりません。失敗したような音は日付なので、 '日付'タイプを試しましたか? – MrE
「含む」は「セル」には表示されず、「テキスト」にのみ表示されます。 http://xlsxwriter.readthedocs.io/working_with_conditional_formats.html?highlight=conditional – Korzak
あなたは試しましたか? – MrE