2016-06-27 9 views
0

私はただExcelファイルのセルにコメントを追加しました。そして何とかそれは大胆になってしまいました。私はそれが欲しくないのです。それを修正するために私は何ができますか?win32で太字から標準にコメントを書式設定する方法は?

マイコード:cmt.Shape.TextFrame.Characters.Font.Boldは= Falseの はAttributeError: '関数' オブジェクトが属性 'フォント'

を持っていない

excel = win32.gencache.EnsureDispatch('Excel.Application') 
file_location = 'C:\Users\A42918\Desktop\Test_folder\Abild, T1.xls' 
wb = excel.Workbooks.Open(file_location) 

ws = wb.Worksheets("Trelindad_utan") 
ws.Range('AH4').Interior.ColorIndex = 37 
ws.Range('AH4').Font.Bold = True 
comment = 'E14678: Vinkel i nollpunkt. Sätts lika med vinkeln på I-bus i balansnätet (om denna avviker mycket från noll grader).'.decode('utf-8') 
ws.Range('AH4').AddComment(comment) 
cmt = ws.Range('AH4').AddComment(comment) 

cmt.Shape.TextFrame.Characters.Font.Bold = False 

wb.SaveAs(Filename = 'C:\Users\A42918\Desktop\color_resultat.xls') 

excel.Application.Quit() 

これは私にエラーメッセージを表示します

それはどういう意味ですか?

+1

'ws.Range( 'AH4')。Font.Bold = True'という行が当初、太字のセルの内容を太字にしています。しかし、ファイルに変更を保存したと仮定すると、コード行を削除しても、セルのフォントの重みは元に戻りません。 'ws.Range( 'AH4').Font.Bold = False'という行を含める必要があります。 – evergreen

答えて

0

このためには、Commentオブジェクトを処理する必要があります。セル「AH4」を表すRangeオブジェクトは、独立してフォーマットされています。セルのフォント書式(太字など)を変更しても、コメントには何の影響もありません。

これは、それを解決する必要があります

excel = win32.gencache.EnsureDispatch('Excel.Application') 
file_location = 'C:\Users\A42918\Desktop\Test_folder\Abild, T1.xls' 
wb = excel.Workbooks.Open(file_location) 

ws = wb.Worksheets("Trelindad_utan") 
ws.Range('AH4').Interior.ColorIndex = 37 
ws.Range('AH4').Font.Bold = True 
comment = 'E14678: Vinkel i nollpunkt. Sätts lika med vinkeln på I-bus i balansnätet (om denna avviker mycket från noll grader).'.decode('utf-8') 
# remove any previous comments just in case 
ws.Range('AH4').ClearComments 
# Add the comment, and its text: 
cmt = ws.Range('AH4').AddComment(comment) 
# Ensure the comment is not bolded font 
cmt.Shape.TextFrame.Characters().Font.Bold = False 
+0

このコードは私にとっては機能しません。このエラーメッセージが表示されます。AttributeError: 'function'に 'Font'属性がありません。コメントはデフォルトで太字になっているようです。どのようにそれを解決するための任意の提案?あなたはどんなwin32文書も知っていますか? – Roslund

+0

@Roslund質問を修正して、現在使用しているコードと完全なトレースバックを含めてください。 –

+0

'.Characters'の後ろに括弧を追加してみてください。 –

0

これは私の問題を解決します!

excel = win32.gencache.EnsureDispatch('Excel.Application') 
file_location = 'C:\Users\A42918\Desktop\Test_folder\Abild, T1.xls' 
wb = excel.Workbooks.Open(file_location) 

ws = wb.Worksheets("Trelindad_utan") 
ws.Range('AH4').Interior.ColorIndex = 37 
ws.Range('AH4').Font.Bold = True 

ws.Range('AH4').ClearComments 
comment = 'E14678: Vinkel i nollpunkt. Sätts lika med vinkeln på I-bus i balansnätet (om denna avviker mycket från noll grader).'.decode('utf-8') 

cmt = ws.Range('AH4').AddComment(comment) 

cmt.Shape.TextFrame.Characters().Font.Bold = False 

wb.SaveAs(Filename = 'C:\Users\A42918\Desktop\color_resultat.xls') 

excel.Application.Quit()