Axlsxでセルのなかのテキストに部分的にスタイルを当てる

Axlsxでセルの中の文字にスタイルをあてる方法です 。
Axlsx::RichTextを使います。
太字、斜体、打ち消し戦、アンダーライン、色変更に対応しております。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
p = Axlsx::Package.new
p.use_shared_strings = true
wb = p.workbook
wrap_text = wb.styles.add_style({:alignment => {:horizontal => :center, :vertical => :center, :wrap_text => true}}  )
rt = Axlsx::RichText.new
rt.add_run('I\'m bold, ', :b => true)
rt.add_run('I\'m italic, ', :i => true)
rt.add_run('I\'m strike' + "\n", :strike => true)
rt.add_run('I\'m bold, italic and strike' + "\n", :b => true, :i => true, :strike => true)
rt.add_run('I\'m style-less :D')
rt.add_run('underlined and red.', :u => :double, :color => 'FF0000')
wb.add_worksheet(:name => "RichText") do | sheet |
sheet.add_row [rt], :style => wrap_text
end
p.serialize 'rich_text.xlsx'

完成イメージ

Axlsxなんでもできますね!

Comments