Pythonモジュールを使用してpyexcelerator
Excelファイルを生成しています。セルテキストの一部に太字のスタイルを適用したいのですが、セル全体には適用しません。どうやってするの?
7018 次
3 に答える
2
これはExcelドキュメントの例です。
With Worksheets("Sheet1").Range("B1")
.Value = "New Title"
.Characters(5, 5).Font.Bold = True
End With
したがって、操作するセルのCharactersプロパティは、質問に対する答えです。Characters(start、length)として使用されます。
PS:問題のモジュールを使用したことはありませんが、PythonスクリプトでExcelCOM自動化を使用しました。Charactersプロパティは、win32comを使用して使用できます。
于 2008-09-20T13:54:04.827 に答える
2
ここで見つけた例:PythonでExcel形式のファイルを生成する
フォントオブジェクトを作成してからスタイルオブジェクトに渡し、シートに書き込むときにそのスタイルオブジェクトを提供することに注意してください。
import pyExcelerator as xl
def save_in_excel(headers,values):
#Open new workbook
mydoc=xl.Workbook()
#Add a worksheet
mysheet=mydoc.add_sheet("test")
#write headers
header_font=xl.Font() #make a font object
header_font.bold=True
header_font.underline=True
#font needs to be style actually
header_style = xl.XFStyle(); header_style.font = header_font
for col,value in enumerate(headers):
mysheet.write(0,col,value,header_style)
#write values and highlight those that match my criteria
highlighted_row_font=xl.Font() #no real highlighting available?
highlighted_row_font.bold=True
highlighted_row_font.colour_index=2 #2 is red,
highlighted_row_style = xl.XFStyle(); highlighted_row_style.font = highlighted_row_font
for row_num,row_values in enumerate(values):
row_num+=1 #start at row 1
if row_values[1]=='Manatee':
for col,value in enumerate(row_values):
#make Manatee's (sp) red
mysheet.write(row_num,col,value,highlighted_row_style)
else:
for col,value in enumerate(row_values):
#normal row
mysheet.write(row_num,col,value)
#save file
mydoc.save(r'C:testpyexel.xlt')
headers=['Date','Name','Localatity']
data=[
['June 11, 2006','Greg','San Jose'],
['June 11, 2006','Greg','San Jose'],
['June 11, 2006','Greg','San Jose'],
['June 11, 2006','Greg','San Jose'],
['June 11, 2006','Manatee','San Jose'],
['June 11, 2006','Greg','San Jose'],
['June 11, 2006','Manatee','San Jose'],
]
save_in_excel(headers,data)
于 2008-09-20T23:10:13.863 に答える
1
これは、同じ問題に使用した1つの解決策です。
import xlsxwriter
workbook = xlsxwriter.Workbook(r'C:\workspace\NMSAutomation_001\FMGGUIAutomation\Libraries\Frontend\new_STICKERS_Final.xlsx')
####### two different formats
bold = workbook.add_format({'font_name':'Tahoma', 'bold': True, 'font_size':14})
normal = workbook.add_format({'font_name':'Tahoma', 'font_size':11})
######## value is my string, bold and normal are my two different formats
segments = [bold, value[:9], normal, value[9:]]
worksheet.write_rich_string('A1', *segments) # 'A1' is cell position
workbook.close()
于 2021-02-17T16:36:40.270 に答える