2016-03-02 14 views
3

我需要幫助python XlsxWriter。我需要爲外部文件鏈接列添加鏈接樣式。但是,如果我爲其他列(本示例中的第一列)添加文本換行,則Xlsxwriter不會識別鏈接樣式(第二列)(文本:下劃線,文本顏色:藍色)。python XlsxWriter文字環繞和鏈接樣式

這是我的例子:

# _*_ coding: utf-8 
import xlsxwriter 

wb = xlsxwriter.Workbook('/home/mtw/Downloads/my_export.xlsx') 

format = wb.add_format() 
format.set_text_wrap() 

sheet = wb.add_worksheet(name='export_object1') 
sheet.write_row('A1', [ 
    u'Its\na bum\nwrap', 
    'external:resignation_letter.docx', 
], format) 
wb.close() 

所以我需要告訴XlsxWriter他可以識別和文本換行和造型的鏈接。

Microsoft office:2007.

xlsxwriter最新版本。

Thx。

回答

4

Excel中的鏈接具有單元格格式(通常爲藍色文本和下劃線),與任何其他格式文本一樣。

如果在XlsxWriter中沒有爲鏈接指定其他格式,則模塊會添加默認(藍色下劃線)格式,就像Excel在輸入網址時一樣。這在write_url()文檔中有解釋。

但是,如果用戶指定帶有鏈接的單元格格式(如您的示例中的text_wrap格式),那麼它將覆蓋默認格式。

所以,如果你想爲網址的藍色下劃線加文字環繞格式,你將不得不直接指定它:

import xlsxwriter 

workbook = xlsxwriter.Workbook('my_export.xlsx') 
worksheet = workbook.add_worksheet(name='export_object1') 

link_format = workbook.add_format({'color': 'blue', 
            'underline': True, 
            'text_wrap': True}) 

text_format = workbook.add_format({'text_wrap': True}) 

worksheet.write('A1', 'Its\na bum\nwrap',   text_format) 
worksheet.write('B1', 'http://stackoverflow.com/', link_format) 

workbook.close() 

輸出:

enter image description here

+0

謝謝,但我的理解,我可以不要像我的例子('sheet.write_row')那樣使用一行來寫數據,並且僅僅通過一個列表方法?麻煩在於我有很多數據,我正在處理和編寫,而且用'sheet.write'編寫每一列是不舒服的。 –

+0

如果用戶可以在字符串中指定需要包裝的東西,就好像'worksheet.write_row('A1',['text_wrap:它的\ na bum \ nwrap','external:resignation_letter.docx']) ' –